Wikibooks plwikibooks https://pl.wikibooks.org/wiki/Wikibooks:Strona_g%C5%82%C3%B3wna MediaWiki 1.39.0-wmf.23 first-letter Media Specjalna Dyskusja Wikipedysta Dyskusja wikipedysty Wikibooks Dyskusja Wikibooks Plik Dyskusja pliku MediaWiki Dyskusja MediaWiki Szablon Dyskusja szablonu Pomoc Dyskusja pomocy Kategoria Dyskusja kategorii Wikijunior Dyskusja Wikijuniora TimedText TimedText talk Moduł Dyskusja modułu Gadżet Dyskusja gadżetu Definicja gadżetu Dyskusja definicji gadżetu MediaWiki:Common.js 8 11046 437173 434633 2022-08-07T21:41:44Z Wargo 17169 https://pl.wikibooks.org/w/index.php?title=Wikipedysta:Persino/common.js&oldid=437171 javascript text/javascript /* Umieszczony tutaj kod JavaScript zostanie załadowany przez każdego użytkownika, podczas każdego ładowania strony. */ // Frame Busting if (top != self) top.location.href = self.location.href; /* * Zmienna Common.pageInfo, jego elementy, instrukcja obsługi: * Common.pageInfo.namespace numer przestrzeni nazw (równe wgNamespaceNumber) * Common.pageInfo.name pełna nazwa strony * Common.pageInfo.title tytuł strony, czyli ostatnia część po '/' albo jest równe pageInfo.name, gdy nigdzie nie występuje slash * Common.pageInfo.book tytuł książki * Common.pageInfo.action akcja taka jaka jest w adresie URL pod "action=", w przypadku normalnego czytania strony, action jest równe "get" * Common.pageInfo.diff null w przypadku, gdy nie porównujemy wersji, w przeciwnym wypadku wartość występującą w adresie URL */ /*Przestrzeń nazw: Common, zdefiniowanym za pomocą tablicy*/ var Common=new Array(); /*Funkcje w przestrzeni nazw Common*/ Common.Naglowek=function(){ /* Skrypt odpowiedzialny za wyświetlanie szablonu Nagłówek [[Szablon:Nagłówek]] */ var hideAll = document.getElementById('mójNagłówekUkryj'); var noFooter = false; var footers = 0; var tags = document.getElementsByTagName('div'); for (var i = 0; i < tags.length; i++) { var el=tags[i].getAttribute("id"); if (el=='mojaStopka') footers++; else if (hideAll && (el=='mójNagłówek')) { tags[i].innerHTML=""; noFooter=true; } } if (noFooter) return; var footer = document.getElementById('mojaStopka'); if ((footer !== null) && (footers==1)) { var bodyContent = document.getElementById('bodyContent'); if (bodyContent !== null) { var s0=document.getElementById('mojaStopka0'); var s1=document.getElementById('mojaStopka1'); if ((s1 !== null) || ((s0 === null) && (bodyContent.innerHTML.length>8000))){ var strona=document.getElementById('strona'); if(strona!==null){ strona.appendChild(footer); }else{ var catlinks=document.getElementById('catlinks'); if(catlinks !== null){ bodyContent.insertBefore(footer,catlinks); }else{ bodyContent.appendChild(footer); } } } } } /* Koniec skryptu odpowiedzialnego za wyświetlanie szablonu Nagłówek [[Szablon:Nagłówek]] */ }; $(Common.Naglowek); /*Informacje o danej stronie*/ Common.PageInfoInit=function(){ var _g = /_/g; this.name = mw.config.get('wgPageName').replace(/_/g, ' '); this.namespace = mw.config.get('wgNamespaceNumber'); var i = this.name.search(/\/[^\/]*$/g); this.title = this.name.slice(i + 1); this.book = this.name.replace(/\/.*/g, ""); if ( document.URL.search("//pl.wikibooks.org/w/index.php") != -1 ) { re = /\&diff=/g; this.diff = re.test(document.URL); re = /\&action=[^\&]*/g; this.action = document.URL.match(re); if ( this.action === null ) { this.action = 'get'; } else { this.action = this.action[0].slice(8, this.action[0].length); } } else { this.diff = null; this.action = 'get'; } } Common.pageInfo = new Common.PageInfoInit(); /** Collapsible tables ********************************************************* * * Description: Allows tables to be collapsed, showing only the header. See * [[en:Wikipedia:NavFrame]]. * Maintainers: [[User:R. Koot]] */ Common.autoCollapse = 2; Common.collapseCaption = "ukryj"; Common.expandCaption = "pokaż"; Common.collapseTable=function( tableIndex ) { var Button = document.getElementById( "collapseButton" + tableIndex ); var Table = document.getElementById( "collapsibleTable" + tableIndex ); if ( !Table || !Button ) { return false; } var Rows = Table.rows; if ( Button.firstChild.data == Common.collapseCaption ) { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = "none"; } Button.firstChild.data = Common.expandCaption; } else { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = Rows[0].style.display; } Button.firstChild.data = Common.collapseCaption; } } Common.createCollapseButtons=function() { var tableIndex = 0; var NavigationBoxes = new Object(); var Tables = document.getElementsByTagName( "table" ); for ( var i = 0; i < Tables.length; i++ ) { if ( $(Tables[i]).hasClass( "collapsible" ) ) { /* only add button and increment count if there is a header row to work with */ var HeaderRow = Tables[i].getElementsByTagName( "tr" )[0]; if (!HeaderRow) continue; var Header = HeaderRow.getElementsByTagName( "th" )[0]; if (!Header) continue; NavigationBoxes[ tableIndex ] = Tables[i]; Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex ); var Button = document.createElement( "span" ); var ButtonLink = document.createElement( "a" ); var ButtonText = document.createTextNode( Common.collapseCaption ); Button.style.styleFloat = "right"; Button.style.cssFloat = "right"; Button.style.fontWeight = "normal"; Button.style.textAlign = "right"; Button.style.width = "6em"; ButtonLink.style.color = Header.style.color; ButtonLink.setAttribute( "id", "collapseButton" + tableIndex ); ButtonLink.setAttribute( "href", "javascript:Common.collapseTable(" + tableIndex + ");" ); ButtonLink.appendChild( ButtonText ); Button.appendChild( document.createTextNode( "[" ) ); Button.appendChild( ButtonLink ); Button.appendChild( document.createTextNode( "]" ) ); $(Header.childNodes[0]).has('a#collapseButton' + tableIndex).each(function(i,element){ $(element).remove(); }); Header.insertBefore( Button, Header.childNodes[0]); tableIndex++; } } for ( var i = 0; i < tableIndex; i++ ) { if ( $(NavigationBoxes[i]).hasClass( "collapsed" ) || ( tableIndex >= Common.autoCollapse && $(NavigationBoxes[i]).hasClass( "Common.autoCollapse" ) ) ) { collapseTable( i ); } else if ( $(NavigationBoxes[i]).hasClass( "innercollapse" ) ) { var element = NavigationBoxes[i]; while (element = element.parentNode) { if ( $(element).hasClass( "outercollapse" ) ) { collapseTable ( i ); break; } } } } } $(Common.createCollapseButtons ); /** Dynamic Navigation Bars (experimental) ************************************* * * Description: See [[Wikipedia:NavFrame]]. * Maintainers: UNMAINTAINED */ // set up the words in your language Common.NavigationBarHide = '[' + Common.collapseCaption + ']'; Common.NavigationBarShow = '[' + Common.expandCaption + ']'; // shows and hides content and picture (if available) of navigation bars // Parameters: // indexNavigationBar: the index of navigation bar to be toggled Common.toggleNavigationBar=function(indexNavigationBar) { var NavToggle = document.getElementById("NavToggle" + indexNavigationBar); var NavFrame = document.getElementById("NavFrame" + indexNavigationBar); if (!NavFrame || !NavToggle) { return false; } // if shown now if (NavToggle.firstChild.data == Common.NavigationBarHide) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) ) { NavChild.style.display = 'none'; } if ( $(NavChild).hasClass( 'NavContent') ) { NavChild.style.display = 'none'; } } NavToggle.firstChild.data = Common.NavigationBarShow; // if hidden now } else if (NavToggle.firstChild.data == Common.NavigationBarShow) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ($(NavChild).hasClass( 'NavPic')) { NavChild.style.display = 'block'; } if ($(NavChild).hasClass( 'NavContent')) { NavChild.style.display = 'block'; } } NavToggle.firstChild.data = Common.NavigationBarHide; } } // adds show/hide-button to navigation bars Common.createNavigationBarToggleButton=function() { var indexNavigationBar = 0; // iterate over all < div >-elements var divs = document.getElementsByTagName("div"); for (var i = 0; NavFrame = divs[i]; i++) { // if found a navigation bar if ($(NavFrame).hasClass( "NavFrame")) { indexNavigationBar++; var NavToggle = document.createElement("a"); NavToggle.className = 'NavToggle'; NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar); NavToggle.setAttribute('href', 'javascript:Common.toggleNavigationBar(' + indexNavigationBar + ');'); var isCollapsed = $(NavFrame).hasClass( "collapsed" ); /* * Check if any children are already hidden. This loop is here for backwards compatibility: * the old way of making NavFrames start out collapsed was to manually add style="display:none" * to all the NavPic/NavContent elements. Since this was bad for accessibility (no way to make * the content visible without JavaScript support), the new recommended way is to add the class * "collapsed" to the NavFrame itself, just like with collapsible tables. */ for (var NavChild = NavFrame.firstChild; NavChild != null && !isCollapsed; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) || $(NavChild).hasClass( 'NavContent' ) ) { if ( NavChild.style.display == 'none' ) { isCollapsed = true; } } } if (isCollapsed) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) || $(NavChild).hasClass( 'NavContent' ) ) { NavChild.style.display = 'none'; } } } var NavToggleText = document.createTextNode(isCollapsed ? Common.NavigationBarShow : Common.NavigationBarHide); NavToggle.appendChild(NavToggleText); // Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked) for(var j=0; j < NavFrame.childNodes.length; j++) { if ($(NavFrame.childNodes[j]).hasClass( "NavHead")) { $(NavFrame.childNodes[j]).children('a.NavToggle#NavToggle' + indexNavigationBar).each(function(i,element){ $(element).remove(); }); NavFrame.childNodes[j].appendChild(NavToggle); } } NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar); } } } $(Common.createNavigationBarToggleButton ); // Wyszukiwanie Google na stronach podręczników Common.googleSearchInitialized = false; Common.insertGoogleSearch=function() { if ( mw.config.get('wgNamespaceNumber') != 0 || Common.googleSearchInitialized ) { return; } Common.googleSearchInitialized = true; var google = "http://www.google.com/custom?sa=Google+Search&domains=pl.wikibooks.org/wiki/PAGE&sitesearch=pl.wikibooks.org/wiki/PAGE"; var ul = jQuery('#p-tb ul')[0]; if (!ul) { return; } var link = document.createElement('a'); var book = Common.pageInfo.book; if ( book.length == 1 || book.indexOf('++') != -1 || encodeURIComponent(book) != book ) { google = "http://www.google.com/custom?sa=Google+Search&domains=pl.wikibooks.org/wiki/&sitesearch=pl.wikibooks.org/wiki/&q=%22PAGE%22" } link.href = google.replace(/PAGE/g, encodeURIComponent(book)); link.appendChild(document.createTextNode("Szukaj w podręczniku")); var li = document.createElement('li'); li.id = "google-trick-search"; li.appendChild(link); $(ul).children('li#google-trick-search').each(function(i,element){ $(element).remove(); }); ul.insertBefore(li, ul.firstChild); } $(Common.insertGoogleSearch); /*Funkcja do liczenia, czy nastąpiło przepełnienie poziome lub pionowe*/ Common.PobierzSzerokoscPaskaPrzewijania=function(x_box_right){ var div = $('<div style="width:50px;height:50px;overflow:hidden;position:absolute;top:-200px;left:-200px;"><div style="height:100px;"></div></div>'); $('body').append(div); var w1 = $('div', div)["inner"+((x_box_right=="y")?"Width":"Height")](); div.css('overflow-'+(x_box_right||"y"), 'scroll'); var w2 = $('div', div)["inner"+((x_box_right=="y")?"Width":"Height")](); $(div).remove(); return (w1 - w2); } /*Funkcje do obsługi pasków przewijania*/ Common.ScrollBarOverflow=function(){ $('*.mw-overflow-x, *.mw-overflow-y').each(function(i,element_g){ /*start overflow*/ var comp=window.getComputedStyle(element_g, null); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var overflow=comp.getPropertyValue("overflow"); var overflow_x=$(element_g).hasClass('mw-overflow-x'); if(overflow_x){ var overflowX=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); if((overflowX)&&(overflowX=="auto")){ element_g.classList.remove("mw-scrollbar-overflow-x"); const hasHorizontalScrollbar = element_g.scrollWidth > element_g.clientWidth; // true lub false if(hasHorizontalScrollbar){ element_g.classList.add("mw-scrollbar-overflow-x"); } } } var overflow_y=$(element_g).hasClass('mw-overflow-y'); if(overflow_y){ var overflowY=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflowY)&&(overflowY=="auto")){ element_g.classList.remove("mw-scrollbar-overflow-y"); const hasVerticalScrollbar = element_g.scrollHeight > element_g.clientHeight; // true lub false if(hasVerticalScrollbar){ element_g.classList.add("mw-scrollbar-overflow-y"); } } } /*koniec overflow*/ }); } $(function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); $(window).on('scroll', Common.ScrollBarOverflow); $(window).on('resize', Common.ScrollBarOverflow); /*Funkcja symulująca właściwości position:sticky, wszędzie tam, gdzie nie można go użyć.*/ Common.StickyXY=function(){ $('*.mw-sticky-x, *.mw-sticky-y').each(function(i,element_g){ var comp=window.getComputedStyle(element_g, null); function FunStickyXY(height,top,bottom,width_box,left_box,right_box,x_box,x_box_right){ var pozycje_paskow=new Array(); $(element_g).find('*').each(function(i,element){ var comp=window.getComputedStyle(element, null); var overflow=comp.getPropertyValue("overflow"); var overflow_x=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); var overflow_y=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflow_x=="auto")||(overflow_x=="scroll")||(overflow_y=="auto")||(overflow_y=="scroll")){ pozycje_paskow.push(new Array(element,element.scrollTop,element.scrollLeft)); } }); var height_sticky=0; $('html.client-js.vector-sticky-header-enabled body.skin-vector-search-vue.vector-sticky-header-visible header.vector-sticky-header').each(function(i,el){ var rect_sticky=el.getBoundingClientRect(); height_sticky=parseInt(rect_sticky[height]); }); var StickyXYTopOld=$(element_g).data('stickyXYOld-'+top);var StickyXYBottomOld=$(element_g).data('stickyXYOld-'+bottom); if(StickyXYTopOld===undefined){ var topold_war=parseFloat(element_g.style[top]); $(element_g).data('stickyXYOld-'+top,((!isNaN(topold_war))?topold_war:0)); } if(StickyXYBottomOld===undefined){ var bottomold_war=parseFloat(element_g.style[bottom]); $(element_g).data('stickyXYOld-'+bottom,((!isNaN(bottomold_war))?bottomold_war:0)); } var topold=$(element_g).data('stickyXYOld-'+top)+height_sticky+5; var margintop=parseFloat(comp.getPropertyValue("margin-"+top)); margintop=((!isNaN(margintop))?margintop:0); var marginbottom=parseFloat(comp.getPropertyValue("margin-"+bottom)); marginbottom=((!isNaN(marginbottom))?marginbottom:0); var przodek_height=undefined; element_g.style[height]="auto"; element_g.style["max"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[top]="auto"; element_g.style[bottom]="auto"; if(width_box!=null){ element_g.style[width_box]="auto"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[left_box]="auto"; element_g.style[right_box]="0"; $(element_g).find('.mw-not-overflow-'+x_box+'.mw-overflow-'+x_box).each(function(i,element){ element.style[width_box]="auto"; }); } var parents_node_fun=$(element_g).parents('.mw-parent-node').first(); if((parents_node_fun==null)||(parents_node_fun.length==0)){return;} var width_rodzic=null; var rodzic_element=undefined; var comp_rodz; parents_node_fun.each(function(i,element){ comp_rodz=window.getComputedStyle(element,null); przodek_height=parseFloat(comp_rodz.getPropertyValue([height])); width_rodzic=width_box?parseFloat(comp_rodz.getPropertyValue([width_box])):null; rodzic_element=element; }); var height_box_real=parseFloat(comp.getPropertyValue(height)); var rect_dziecko=element_g.getBoundingClientRect(); var wys=document.documentElement["client"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]; var rect_rodzic; parents_node_fun.each(function(i,element){ rect_rodzic=element.getBoundingClientRect(); }); var top_ab=rect_rodzic[top]-margintop; var bottom_ab=(wys-rect_rodzic[bottom])-marginbottom; var maxheight=Math.min(przodek_height,wys-((rect_rodzic[top]>=0)?(rect_rodzic[top]):(0))-((bottom_ab>=0)?(bottom_ab):(0)))-(((top_ab<=0)?(topold):(Math.max(0,topold-top_ab)))+((bottom_ab<=0)?($(element_g).data('stickyXYOld-'+bottom)+5):(Math.max(0,$(element_g).data('stickyXYOld-'+bottom)+5-bottom_ab)))+marginbottom+margintop); element_g.style["max"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(((maxheight>=0)?maxheight:0)*(height_box_real/rect_dziecko[height]))+"px"; element_g.style[height]=(element_g["offset"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))])+"px"; var top_obj=(((top_ab>=0)?0:(-top_ab)))+((top_ab<=0)?(topold):(Math.max(0,topold-top_ab))); element_g.style[top]=top_obj+"px"; element_g.style[bottom]="auto"; if(width_box!=null){ element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; rodzic_element.style.position="static"; rodzic_element.style.overflow="hidden"; var width_box_real=parseFloat(comp.getPropertyValue(width_box)); var rect_dziecko=element_g.getBoundingClientRect(); if(parseInt(width_box_real)>parseInt(rect_dziecko[width_box])){ if(width_box=="width"){ element_g.classList.remove('mw-scrollbar-overflow-x'); }else{ element_g.classList.remove('mw-scrollbar-overflow-y'); } if(rect_dziecko[width_box]>width_rodzic){ if(width_box=="width"){ element_g.classList.add('mw-scrollbar-overflow-x'); }else{ element_g.classList.add('mw-scrollbar-overflow-y'); } } var width_box_real=parseFloat(comp.getPropertyValue(width_box)); var margin_all=parseFloat(comp.getPropertyValue("margin-"+left_box))+parseFloat(comp.getPropertyValue("margin-"+right_box)); margin_all+=parseFloat(comp_rodz.getPropertyValue("padding-"+left_box))+parseFloat(comp_rodz.getPropertyValue("padding-"+right_box)); var dlugosc=(width_rodzic-margin_all); dlugosc=((dlugosc>=0)?dlugosc:0); element_g.style.whiteSpace="nowrap"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width_box]))+"px"; element_g.style[width_box]=width_box_real+"px"; Common.ScrollBarOverflow(); $(element_g).find('.mw-overflow-'+x_box+'.mw-not-overflow-'+x_box+'.mw-scrollbar-overflow-'+x_box).each(function(i,element){ var comp_element=window.getComputedStyle(element, null) element.style[width_box]=(element["scroll"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]+Common.PobierzSzerokoscPaskaPrzewijania(x_box_right)+parseFloat(comp_element.getPropertyValue('padding-'+left_box))+parseFloat(comp_element.getPropertyValue('padding-'+right_box)))+"px"; element.classList.remove('mw-scrollbar-overflow-'+x_box_right); }); element_g.style.whiteSpace="normal"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[width_box]="auto"; var rect_dziecko=element_g.getBoundingClientRect(); var width_box_real=parseFloat(comp.getPropertyValue(width_box)); element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width_box]))+"px"; element_g.style[width_box]=width_box_real+"px"; element_g.style[left_box]="0"; element_g.style[right_box]="auto"; rodzic_element.style.position="relative"; }else{ element_g.style.whiteSpace="nowrap"; var szerokosc_box=rect_dziecko[width_box]; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(szerokosc_box)+"px"; element_g.style[width_box]=(szerokosc_box)+"px"; Common.ScrollBarOverflow(); $(element_g).find('.mw-overflow-'+x_box+'.mw-not-overflow-'+x_box+'.mw-scrollbar-overflow-'+x_box).each(function(i,element){ var comp_element=window.getComputedStyle(element, null); element.style[width_box]=(element["scroll"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]+Common.PobierzSzerokoscPaskaPrzewijania(x_box_right)+parseFloat(comp_element.getPropertyValue('padding-'+left_box))+parseFloat(comp_element.getPropertyValue('padding-'+right_box)))+"px"; element.classList.remove('mw-scrollbar-overflow-'+x_box_right); }); element_g.style.whiteSpace="normal"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[width_box]="auto"; var rect_dziecko=element_g.getBoundingClientRect(); var szerokosc_box=rect_dziecko[width_box]; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(szerokosc_box)+"px"; element_g.style[width_box]=(szerokosc_box)+"px"; var szerokosc=rect_dziecko[width_box]+parseFloat(comp.getPropertyValue("margin-"+left_box))+parseFloat(comp.getPropertyValue("margin-"+right_box)); if(parseInt(szerokosc)>parseInt(width_rodzic)){ element_g.style[right_box]="0"; element_g.style[left_box]="auto"; rodzic_element.style.overflow="visible"; }else{ element_g.style[left_box]="0"; element_g.style[right_box]="auto"; rodzic_element.style.position="relative"; } } } element_g.style[height]="auto"; element_g.style[height]=(element_g["offset"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))])+"px"; Common.ScrollBarOverflow(); for(var i in pozycje_paskow){ pozycje_paskow[i][0].scrollTop=pozycje_paskow[i][1]; pozycje_paskow[i][0].scrollLeft=pozycje_paskow[i][2]; } } element_g.classList.add('mw-sticky-js'); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var visibility=comp.getPropertyValue("visibility"); if(visibility=="hidden"){return;} var position=comp.getPropertyValue("position"); if(position!="absolute"){return;} var sticky_x=$(element_g).hasClass('mw-sticky-x'); var sticky_y=$(element_g).hasClass('mw-sticky-y'); if((sticky_x)&&(!sticky_y)){ var str=$(element_g).parents('.strona_górna, .strona_dolna').first(); if(str.hasClass('strona_dolna')){ FunStickyXY("width","left","right","height","top","bottom","y","x"); }else if(str.hasClass('strona_górna')){ FunStickyXY("width","left","right","height","bottom","top","y","x"); } }else if((!sticky_x)&&(sticky_y)){ var str=$(element_g).parents('.strona_prawa, .strona_lewa').first(); if(str.hasClass('strona_prawa')){ FunStickyXY("height","top","bottom","width","left","right","x","y"); }else if(str.hasClass('strona_lewa')){ FunStickyXY("height","top","bottom","width","right","left","x","y"); } }else if((sticky_x)&&(sticky_y)){ FunStickyXY("width","left","right",null); FunStickyXY("height","top","bottom",null); } }); } $(function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); $(window).on('scroll', Common.StickyXY); $(window).on('resize', Common.StickyXY); /*Funkcja do ustawiania maksymalnego rozmiaru dziecka, względem rodzica, przy position:absolute*/ Common.OptimalXY=function(){ $('*.mw-optimal-x, *.mw-optimal-y').each(function(i,element_g){ var comp=window.getComputedStyle(element_g, null); function FunOptimalXY(width,left,right){ var pozycje_paskow=new Array(); $(element_g).find('*').each(function(i,element){ var comp=window.getComputedStyle(element, null); var overflow=comp.getPropertyValue("overflow"); var overflow_x=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); var overflow_y=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflow_x=="auto")||(overflow_x=="scroll")||(overflow_y=="auto")||(overflow_y=="scroll")){ pozycje_paskow.push(new Array(element,element.scrollTop,element.scrollLeft)); } }); var width_rodzic=null; var rodzic_node; var comp_rodz; $(element_g).parents('.mw-parent-node').first().each(function(i,element){ comp_rodz=window.getComputedStyle(element,null); width_rodzic=parseFloat(comp_rodz.getPropertyValue([width])); rodzic_node=element; }); if((width_rodzic!=null)&&(!isNaN(width_rodzic))){ element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; var width_box_real=parseFloat(comp.getPropertyValue(width)); var rect_dziecko=element_g.getBoundingClientRect(); if(width=="width"){ element_g.classList.remove('mw-scrollbar-overflow-x'); }else{ element_g.classList.remove('mw-scrollbar-overflow-y'); } if(parseInt(width_box_real)>parseInt(rect_dziecko[width])){ var rect_dziecko=element_g.getBoundingClientRect(); if(rect_dziecko[width]>width_rodzic){ if(width=="width"){ element_g.classList.add('mw-scrollbar-overflow-x'); }else{ element_g.classList.add('mw-scrollbar-overflow-y'); } } var width_box_real=parseFloat(comp.getPropertyValue(width)); var margin_all=parseFloat(comp.getPropertyValue("margin-"+left))+parseFloat(comp.getPropertyValue("margin-"+right)); margin_all+=parseFloat(comp_rodz.getPropertyValue("padding-"+left))+parseFloat(comp_rodz.getPropertyValue("padding-"+right)); var dlugosc=(width_rodzic-margin_all); dlugosc=((dlugosc>=0)?dlugosc:0); element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width]))+"px"; }else{ element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(rect_dziecko[width])+"px"; } var str=$(element_g).parents('.strona_prawa, .strona_lewa, .strona_górna, .strona_dolna').first(); if(!str.hasClass('strona_start-nawigacja_boksy')){ var rect_dziecko=element_g.getBoundingClientRect(); var szerokosc=rect_dziecko[width]+parseFloat(comp.getPropertyValue("margin-"+left))+parseFloat(comp.getPropertyValue("margin-"+right)); if(parseInt(szerokosc)>parseInt(width_rodzic)){ str.css('position','static'); }else{ str.css('position','relative'); } } } for(var i in pozycje_paskow){ pozycje_paskow[i][0].scrollTop=pozycje_paskow[i][1]; pozycje_paskow[i][0].scrollLeft=pozycje_paskow[i][2]; } }; element_g.classList.add('mw-optimal-js'); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var visibility=comp.getPropertyValue("visibility"); if(visibility=="hidden"){return;} var position=comp.getPropertyValue("position"); if(position!="absolute"){return;} var optimal_x=$(element_g).hasClass('mw-optimal-x'); var optimal_y=$(element_g).hasClass('mw-optimal-y'); if(optimal_x){ FunOptimalXY("width","left","right"); } if(optimal_y){ FunOptimalXY("height","top","bottom"); } }); } $(function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); $(window).on("scroll",Common.OptimalXY); $(window).on("resize",Common.OptimalXY); /*Uruchamianie dodatkowych funkcji, niż standardowe, w href w linkach rozwijanej tabeli TABLE lub ramki DIV, jeśli ona generuje zwiększenie rozmiarów, aby w rodzicu pojawił się pasek przewijania, z dodatkowymi opcjami generowanej przez arkusz kalkulacyjny CSS*/ Common.RamkiTableIDiv=function(obiekt,id_tabeli_lub_ramki,id_nazwa_a,fun_obiektu){ $(obiekt).each(function(i,element_f){ return new Promise(function(resolve,reject){ var czas=0; function Czekaj(){ if(czas>30000){ reject(); } var collapsebutton=$(element_f).find('a#'+id_nazwa_a+i); if((collapsebutton!==null)&&(collapsebutton.length>0)){ var tabele_lub_ramki=collapsebutton.parents('#'+id_tabeli_lub_ramki+i); if((tabele_lub_ramki===null)||(tabele_lub_ramki.length==0)){reject();} resolve(i); }else{ czas+=100; setTimeout(Czekaj,100); } } Czekaj(); }).then(function(i){ $('*.mw-overflow-x a#'+id_nazwa_a+i+', *.mw-overflow-y a#'+id_nazwa_a+i).each(function(j,element_g){ var href=element_g.getAttribute('href'); if((href!=null)&&(href!="")){ var col="[\\s;\\(\\,]*javascript:"+fun_obiektu.replace(/\./g,"\\.")+"\\s*\\(\\s*"+i+"\\s*\\)[\\s;\\)\\,]*"; var re_frame = new RegExp(col,'g'); var re_javascript=new RegExp("^[\\s;]*javascript:"); if((re_javascript.test(href))&&(re_frame.test(href))){ element_g.setAttribute('href',href.replace(/[;\s]*$/g,"")+';javascript:Common.ScrollBarOverflow();javascript:Common.StickyXY();javascript:Common.OptimalXY()') } } }); }).catch(function(){}); }); }; /*Dla menu rozwijanego tabeli TABLE zdefiniowanej na stronie MediaWiki:Common.js*/ Common.RamkiTableIDiv("table.collapsible",'collapsibleTable','collapseButton','Common.collapseTable'); /*Dla menu rozwijanej ramki DIV zdefiniowanej na stronie MediaWiki:Common.js*/ Common.RamkiTableIDiv("div.NavFrame",'NavFrame','NavToggle','Common.toggleNavigationBar'); /*Koniec dodatkowych funkcji*/ /*Uruchamianie dodatkowych zdarzeń do Common.StickyXY i OptimalXY*/ Common.ZdarzeniaDodatkoweFunkcyjneXY=function(css,fun_zdarz){ var fun_css=$(css); fun_css.on('mouseenter',fun_zdarz); fun_css.on('mouseleave',fun_zdarz); fun_css.on('transitionstart',fun_zdarz); fun_css.on('webkittransitionstart',fun_zdarz); fun_css.on('moztransitionstart',fun_zdarz); fun_css.on('otransitionstart',fun_zdarz); fun_css.on('transitionrun',fun_zdarz); fun_css.on('webkittransitionrun',fun_zdarz); fun_css.on('moztransitionrun',fun_zdarz); fun_css.on('otransitionrun',fun_zdarz); fun_css.on('transitioncancel',fun_zdarz); fun_css.on('webkittransitioncancel',fun_zdarz); fun_css.on('moztransitioncancel',fun_zdarz); fun_css.on('otransitioncancel',fun_zdarz); fun_css.on('transitionend',fun_zdarz); fun_css.on('webkittransitionend',fun_zdarz); fun_css.on('moztransitionend',fun_zdarz); fun_css.on('otransitionend',fun_zdarz); }; Common.ZdarzeniaDodatkoweFunkcyjneXY("*.mw-sticky-x, *.mw-sticky-y",Common.StickyXY); Common.ZdarzeniaDodatkoweFunkcyjneXY('*.mw-optimal-x, *.mw-optimal-y',Common.OptimalXY); /*Koniec dodatkowych zdarzeń*/ /*Program do obsługi szablonu StronaStart i jego pokrewnych książkowych*/ Common.StronaStart=function(){ var elements=$('.strona_start .strona .ciało_zawartości > .menu > .menu_boks'); elements.parent().show(); $('.strona_start').find('.strona_lewa .nawigacja_boksy, .strona_prawa .nawigacja_boksy').each(function(i,element){ $(element).css('visibility',"hidden"); }); $('.strona_start').find('.strona_lewa .nawigacja_spis, .strona_prawa .nawigacja_spis').each(function(i,element){ var czy_visible=$(element).css('visibility'); $(element).css('visibility',"visible"); var str=$(element).parents('.strona_prawa, .strona_lewa').first(); str.css('position','relative'); str.addClass('strona_start-nawigacja_spis'); str.removeClass('strona_start-nawigacja_boksy'); if(czy_visible=="hidden"){ $(Common.ScrollBarOverflow); $(Common.StickyXY); } }); function StronaStartFun(){ var id=this; $(id).parents('.strona_start').first().find('.strona .ciało_zawartości > .menu > .menu_boks').children().each(function(i,element){ var display=$(element).css('display'); if(display=="none"){ $(element).css('display',"block"); }else{ $(element).css('display',"none"); } }); $(id).parents('.strona_start').first().find('.strona_lewa, .strona_prawa').children().each(function(i,element){ var visibility=window.getComputedStyle(element, null).getPropertyValue('visibility'); if(visibility=="hidden"){ $(element).css('visibility',"visible"); var str=$(element).parents('.strona_prawa, .strona_lewa').first(); if($(element).hasClass('nawigacja_boksy')){ str.css('position','static'); str.addClass('strona_start-nawigacja_boksy'); str.removeClass('strona_start-nawigacja_spis'); $(Common.ScrollBarOverflow); $(Common.OptimalXY); }else if($(element).hasClass('nawigacja_spis')){ str.css('position','relative'); str.addClass('strona_start-nawigacja_spis'); str.removeClass('strona_start-nawigacja_boksy'); $(Common.ScrollBarOverflow); $(Common.StickyXY); } }else{ $(element).css('visibility',"hidden"); } }); } elements.on('click',StronaStartFun); } $(Common.StronaStart); 7z3ltdhna4b5g0jlm4cthcgpoidwgnc 437182 437173 2022-08-08T08:46:42Z Wargo 17169 javascript text/javascript /* Umieszczony tutaj kod JavaScript zostanie załadowany przez każdego użytkownika, podczas każdego ładowania strony. */ // Frame Busting if (top != self) top.location.href = self.location.href; /* * Zmienna Common.pageInfo, jego elementy, instrukcja obsługi: * Common.pageInfo.namespace numer przestrzeni nazw (równe wgNamespaceNumber) * Common.pageInfo.name pełna nazwa strony * Common.pageInfo.title tytuł strony, czyli ostatnia część po '/' albo jest równe pageInfo.name, gdy nigdzie nie występuje slash * Common.pageInfo.book tytuł książki * Common.pageInfo.action akcja taka jaka jest w adresie URL pod "action=", w przypadku normalnego czytania strony, action jest równe "get" * Common.pageInfo.diff null w przypadku, gdy nie porównujemy wersji, w przeciwnym wypadku wartość występującą w adresie URL */ /*Przestrzeń nazw: Common, zdefiniowanym za pomocą tablicy*/ var Common=new Array(); /*Funkcje w przestrzeni nazw Common*/ Common.Naglowek=function(){ /* Skrypt odpowiedzialny za wyświetlanie szablonu Nagłówek [[Szablon:Nagłówek]] */ var hideAll = document.getElementById('mójNagłówekUkryj'); var noFooter = false; var footers = 0; var tags = document.getElementsByTagName('div'); for (var i = 0; i < tags.length; i++) { var el=tags[i].getAttribute("id"); if (el=='mojaStopka') footers++; else if (hideAll && (el=='mójNagłówek')) { tags[i].innerHTML=""; noFooter=true; } } if (noFooter) return; var footer = document.getElementById('mojaStopka'); if ((footer !== null) && (footers==1)) { var bodyContent = document.getElementById('bodyContent'); if (bodyContent !== null) { var s0=document.getElementById('mojaStopka0'); var s1=document.getElementById('mojaStopka1'); if ((s1 !== null) || ((s0 === null) && (bodyContent.innerHTML.length>8000))){ var strona=document.getElementById('strona'); if(strona!==null){ strona.appendChild(footer); }else{ var catlinks=document.getElementById('catlinks'); if(catlinks !== null){ bodyContent.insertBefore(footer,catlinks); }else{ bodyContent.appendChild(footer); } } } } } /* Koniec skryptu odpowiedzialnego za wyświetlanie szablonu Nagłówek [[Szablon:Nagłówek]] */ }; $(Common.Naglowek); /*Informacje o danej stronie*/ Common.PageInfoInit=function(){ var _g = /_/g; this.name = mw.config.get('wgPageName').replace(/_/g, ' '); this.namespace = mw.config.get('wgNamespaceNumber'); var i = this.name.search(/\/[^\/]*$/g); this.title = this.name.slice(i + 1); this.book = this.name.replace(/\/.*/g, ""); if ( document.URL.search("//pl.wikibooks.org/w/index.php") != -1 ) { re = /\&diff=/g; this.diff = re.test(document.URL); re = /\&action=[^\&]*/g; this.action = document.URL.match(re); if ( this.action === null ) { this.action = 'get'; } else { this.action = this.action[0].slice(8, this.action[0].length); } } else { this.diff = null; this.action = 'get'; } } Common.pageInfo = new Common.PageInfoInit(); /** Collapsible tables ********************************************************* * * Description: Allows tables to be collapsed, showing only the header. See * [[en:Wikipedia:NavFrame]]. * Maintainers: [[User:R. Koot]] */ Common.autoCollapse = 2; Common.collapseCaption = "ukryj"; Common.expandCaption = "pokaż"; Common.collapseTable=function( tableIndex ) { var Button = document.getElementById( "collapseButton" + tableIndex ); var Table = document.getElementById( "collapsibleTable" + tableIndex ); if ( !Table || !Button ) { return false; } var Rows = Table.rows; if ( Button.firstChild.data == Common.collapseCaption ) { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = "none"; } Button.firstChild.data = Common.expandCaption; } else { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = Rows[0].style.display; } Button.firstChild.data = Common.collapseCaption; } } Common.createCollapseButtons=function() { var tableIndex = 0; var NavigationBoxes = new Object(); var Tables = document.getElementsByTagName( "table" ); for ( var i = 0; i < Tables.length; i++ ) { if ( $(Tables[i]).hasClass( "collapsible" ) ) { /* only add button and increment count if there is a header row to work with */ var HeaderRow = Tables[i].getElementsByTagName( "tr" )[0]; if (!HeaderRow) continue; var Header = HeaderRow.getElementsByTagName( "th" )[0]; if (!Header) continue; NavigationBoxes[ tableIndex ] = Tables[i]; Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex ); var Button = document.createElement( "span" ); var ButtonLink = document.createElement( "a" ); var ButtonText = document.createTextNode( Common.collapseCaption ); Button.style.styleFloat = "right"; Button.style.cssFloat = "right"; Button.style.fontWeight = "normal"; Button.style.textAlign = "right"; Button.style.width = "6em"; ButtonLink.style.color = Header.style.color; ButtonLink.setAttribute( "id", "collapseButton" + tableIndex ); ButtonLink.setAttribute( "href", "javascript:Common.collapseTable(" + tableIndex + ");" ); ButtonLink.appendChild( ButtonText ); Button.appendChild( document.createTextNode( "[" ) ); Button.appendChild( ButtonLink ); Button.appendChild( document.createTextNode( "]" ) ); $(Header.childNodes[0]).has('a#collapseButton' + tableIndex).each(function(i,element){ $(element).remove(); }); Header.insertBefore( Button, Header.childNodes[0]); tableIndex++; } } for ( var i = 0; i < tableIndex; i++ ) { if ( $(NavigationBoxes[i]).hasClass( "collapsed" ) || ( tableIndex >= Common.autoCollapse && $(NavigationBoxes[i]).hasClass( "Common.autoCollapse" ) ) ) { collapseTable( i ); } else if ( $(NavigationBoxes[i]).hasClass( "innercollapse" ) ) { var element = NavigationBoxes[i]; while (element = element.parentNode) { if ( $(element).hasClass( "outercollapse" ) ) { collapseTable ( i ); break; } } } } } $(Common.createCollapseButtons ); /** Dynamic Navigation Bars (experimental) ************************************* * * Description: See [[Wikipedia:NavFrame]]. * Maintainers: UNMAINTAINED */ // set up the words in your language Common.NavigationBarHide = '[' + Common.collapseCaption + ']'; Common.NavigationBarShow = '[' + Common.expandCaption + ']'; // shows and hides content and picture (if available) of navigation bars // Parameters: // indexNavigationBar: the index of navigation bar to be toggled Common.toggleNavigationBar=function(indexNavigationBar) { var NavToggle = document.getElementById("NavToggle" + indexNavigationBar); var NavFrame = document.getElementById("NavFrame" + indexNavigationBar); if (!NavFrame || !NavToggle) { return false; } // if shown now if (NavToggle.firstChild.data == Common.NavigationBarHide) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) ) { NavChild.style.display = 'none'; } if ( $(NavChild).hasClass( 'NavContent') ) { NavChild.style.display = 'none'; } } NavToggle.firstChild.data = Common.NavigationBarShow; // if hidden now } else if (NavToggle.firstChild.data == Common.NavigationBarShow) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ($(NavChild).hasClass( 'NavPic')) { NavChild.style.display = 'block'; } if ($(NavChild).hasClass( 'NavContent')) { NavChild.style.display = 'block'; } } NavToggle.firstChild.data = Common.NavigationBarHide; } } // adds show/hide-button to navigation bars Common.createNavigationBarToggleButton=function() { var indexNavigationBar = 0; // iterate over all < div >-elements var divs = document.getElementsByTagName("div"); for (var i = 0; NavFrame = divs[i]; i++) { // if found a navigation bar if ($(NavFrame).hasClass( "NavFrame")) { indexNavigationBar++; var NavToggle = document.createElement("a"); NavToggle.className = 'NavToggle'; NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar); NavToggle.setAttribute('href', 'javascript:Common.toggleNavigationBar(' + indexNavigationBar + ');'); var isCollapsed = $(NavFrame).hasClass( "collapsed" ); /* * Check if any children are already hidden. This loop is here for backwards compatibility: * the old way of making NavFrames start out collapsed was to manually add style="display:none" * to all the NavPic/NavContent elements. Since this was bad for accessibility (no way to make * the content visible without JavaScript support), the new recommended way is to add the class * "collapsed" to the NavFrame itself, just like with collapsible tables. */ for (var NavChild = NavFrame.firstChild; NavChild != null && !isCollapsed; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) || $(NavChild).hasClass( 'NavContent' ) ) { if ( NavChild.style.display == 'none' ) { isCollapsed = true; } } } if (isCollapsed) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) || $(NavChild).hasClass( 'NavContent' ) ) { NavChild.style.display = 'none'; } } } var NavToggleText = document.createTextNode(isCollapsed ? Common.NavigationBarShow : Common.NavigationBarHide); NavToggle.appendChild(NavToggleText); // Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked) for(var j=0; j < NavFrame.childNodes.length; j++) { if ($(NavFrame.childNodes[j]).hasClass( "NavHead")) { $(NavFrame.childNodes[j]).children('a.NavToggle#NavToggle' + indexNavigationBar).each(function(i,element){ $(element).remove(); }); NavFrame.childNodes[j].appendChild(NavToggle); } } NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar); } } } $(Common.createNavigationBarToggleButton ); // Wyszukiwanie Google na stronach podręczników Common.googleSearchInitialized = false; Common.insertGoogleSearch=function() { if ( mw.config.get('wgNamespaceNumber') != 0 || Common.googleSearchInitialized ) { return; } Common.googleSearchInitialized = true; var google = "http://www.google.com/custom?sa=Google+Search&domains=pl.wikibooks.org/wiki/PAGE&sitesearch=pl.wikibooks.org/wiki/PAGE"; var ul = jQuery('#p-tb ul')[0]; if (!ul) { return; } var link = document.createElement('a'); var book = Common.pageInfo.book; if ( book.length == 1 || book.indexOf('++') != -1 || encodeURIComponent(book) != book ) { google = "http://www.google.com/custom?sa=Google+Search&domains=pl.wikibooks.org/wiki/&sitesearch=pl.wikibooks.org/wiki/&q=%22PAGE%22" } link.href = google.replace(/PAGE/g, encodeURIComponent(book)); link.appendChild(document.createTextNode("Szukaj w podręczniku")); var li = document.createElement('li'); li.id = "google-trick-search"; li.appendChild(link); $(ul).children('li#google-trick-search').each(function(i,element){ $(element).remove(); }); ul.insertBefore(li, ul.firstChild); } $(Common.insertGoogleSearch); /*Funkcja do liczenia, czy nastąpiło przepełnienie poziome lub pionowe*/ Common.PobierzSzerokoscPaskaPrzewijania=function(x_box_right){ var div = $('<div style="width:50px;height:50px;overflow:hidden;position:absolute;top:-200px;left:-200px;"><div style="height:100px;"></div></div>'); $('body').append(div); var w1 = $('div', div)["inner"+((x_box_right=="y")?"Width":"Height")](); div.css('overflow-'+(x_box_right||"y"), 'scroll'); var w2 = $('div', div)["inner"+((x_box_right=="y")?"Width":"Height")](); $(div).remove(); return (w1 - w2); } /*Funkcje do obsługi pasków przewijania*/ Common.ScrollBarOverflow=function(){ $('*.mw-overflow-x, *.mw-overflow-y').each(function(i,element_g){ /*start overflow*/ var comp=window.getComputedStyle(element_g, null); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var overflow=comp.getPropertyValue("overflow"); var overflow_x=$(element_g).hasClass('mw-overflow-x'); if(overflow_x){ var overflowX=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); if((overflowX)&&(overflowX=="auto")){ element_g.classList.remove("mw-scrollbar-overflow-x"); const hasHorizontalScrollbar = element_g.scrollWidth > element_g.clientWidth; // true lub false if(hasHorizontalScrollbar){ element_g.classList.add("mw-scrollbar-overflow-x"); } } } var overflow_y=$(element_g).hasClass('mw-overflow-y'); if(overflow_y){ var overflowY=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflowY)&&(overflowY=="auto")){ element_g.classList.remove("mw-scrollbar-overflow-y"); const hasVerticalScrollbar = element_g.scrollHeight > element_g.clientHeight; // true lub false if(hasVerticalScrollbar){ element_g.classList.add("mw-scrollbar-overflow-y"); } } } /*koniec overflow*/ }); } $(function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); $(window).on('scroll', Common.ScrollBarOverflow); $(window).on('resize', Common.ScrollBarOverflow); /*Funkcja symulująca właściwości position:sticky, wszędzie tam, gdzie nie można go użyć.*/ Common.StickyXY=function(){ $('*.mw-sticky-x, *.mw-sticky-y').each(function(i,element_g){ var comp=window.getComputedStyle(element_g, null); function FunStickyXY(height,top,bottom,width_box,left_box,right_box,x_box,x_box_right){ var pozycje_paskow=new Array(); $(element_g).find('*').each(function(i,element){ var comp=window.getComputedStyle(element, null); var overflow=comp.getPropertyValue("overflow"); var overflow_x=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); var overflow_y=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflow_x=="auto")||(overflow_x=="scroll")||(overflow_y=="auto")||(overflow_y=="scroll")){ pozycje_paskow.push(new Array(element,element.scrollTop,element.scrollLeft)); } }); var height_sticky=0; $('html.client-js.vector-sticky-header-enabled body.skin-vector-search-vue.vector-sticky-header-visible header.vector-sticky-header').each(function(i,el){ var rect_sticky=el.getBoundingClientRect(); height_sticky=parseInt(rect_sticky[height]); }); var StickyXYTopOld=$(element_g).data('stickyXYOld-'+top);var StickyXYBottomOld=$(element_g).data('stickyXYOld-'+bottom); if(StickyXYTopOld===undefined){ var topold_war=parseFloat(element_g.style[top]); $(element_g).data('stickyXYOld-'+top,((!isNaN(topold_war))?topold_war:0)); } if(StickyXYBottomOld===undefined){ var bottomold_war=parseFloat(element_g.style[bottom]); $(element_g).data('stickyXYOld-'+bottom,((!isNaN(bottomold_war))?bottomold_war:0)); } var topold=$(element_g).data('stickyXYOld-'+top)+height_sticky+5; var margintop=parseFloat(comp.getPropertyValue("margin-"+top)); margintop=((!isNaN(margintop))?margintop:0); var marginbottom=parseFloat(comp.getPropertyValue("margin-"+bottom)); marginbottom=((!isNaN(marginbottom))?marginbottom:0); var przodek_height=undefined; element_g.style[height]="auto"; element_g.style["max"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[top]="auto"; element_g.style[bottom]="auto"; if(width_box!=null){ element_g.style[width_box]="auto"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[left_box]="auto"; element_g.style[right_box]="0"; $(element_g).find('.mw-not-overflow-'+x_box+'.mw-overflow-'+x_box).each(function(i,element){ element.style[width_box]="auto"; }); } var parents_node_fun=$(element_g).parents('.mw-parent-node').first(); if((parents_node_fun==null)||(parents_node_fun.length==0)){return;} var width_rodzic=null; var rodzic_element=undefined; var comp_rodz; parents_node_fun.each(function(i,element){ comp_rodz=window.getComputedStyle(element,null); przodek_height=parseFloat(comp_rodz.getPropertyValue([height])); width_rodzic=width_box?parseFloat(comp_rodz.getPropertyValue([width_box])):null; rodzic_element=element; }); var height_box_real=parseFloat(comp.getPropertyValue(height)); var rect_dziecko=element_g.getBoundingClientRect(); var wys=document.documentElement["client"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]; var rect_rodzic; parents_node_fun.each(function(i,element){ rect_rodzic=element.getBoundingClientRect(); }); var top_ab=rect_rodzic[top]; var bottom_ab=(wys-rect_rodzic[bottom]); var maxheight=Math.min(przodek_height,wys-((rect_rodzic[top]>=0)?(rect_rodzic[top]):(0))-((bottom_ab>=0)?(bottom_ab):(0)))-(((top_ab<=0)?(topold):(Math.max(0,topold-top_ab)))+((bottom_ab<=0)?($(element_g).data('stickyXYOld-'+bottom)+5):(Math.max(0,$(element_g).data('stickyXYOld-'+bottom)+5-bottom_ab)))+marginbottom+margintop); element_g.style["max"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(((maxheight>=0)?maxheight:0)*(height_box_real/rect_dziecko[height]))+"px"; element_g.style[height]=(element_g["offset"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))])+"px"; var top_obj=(((top_ab>=0)?0:(-top_ab)))+((top_ab<=0)?(topold):(Math.max(0,topold-top_ab))); element_g.style[top]=top_obj+"px"; element_g.style[bottom]="auto"; if(width_box!=null){ element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; rodzic_element.style.position="static"; rodzic_element.style.overflow="hidden"; var width_box_real=parseFloat(comp.getPropertyValue(width_box)); var rect_dziecko=element_g.getBoundingClientRect(); if(parseInt(width_box_real)>parseInt(rect_dziecko[width_box])){ if(width_box=="width"){ element_g.classList.remove('mw-scrollbar-overflow-x'); }else{ element_g.classList.remove('mw-scrollbar-overflow-y'); } if(rect_dziecko[width_box]>width_rodzic){ if(width_box=="width"){ element_g.classList.add('mw-scrollbar-overflow-x'); }else{ element_g.classList.add('mw-scrollbar-overflow-y'); } } var width_box_real=parseFloat(comp.getPropertyValue(width_box)); var margin_all=parseFloat(comp.getPropertyValue("margin-"+left_box))+parseFloat(comp.getPropertyValue("margin-"+right_box)); margin_all+=parseFloat(comp_rodz.getPropertyValue("padding-"+left_box))+parseFloat(comp_rodz.getPropertyValue("padding-"+right_box)); var dlugosc=(width_rodzic-margin_all); dlugosc=((dlugosc>=0)?dlugosc:0); element_g.style.whiteSpace="nowrap"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width_box]))+"px"; element_g.style[width_box]=width_box_real+"px"; Common.ScrollBarOverflow(); $(element_g).find('.mw-overflow-'+x_box+'.mw-not-overflow-'+x_box+'.mw-scrollbar-overflow-'+x_box).each(function(i,element){ var comp_element=window.getComputedStyle(element, null) element.style[width_box]=(element["scroll"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]+Common.PobierzSzerokoscPaskaPrzewijania(x_box_right)+parseFloat(comp_element.getPropertyValue('padding-'+left_box))+parseFloat(comp_element.getPropertyValue('padding-'+right_box)))+"px"; element.classList.remove('mw-scrollbar-overflow-'+x_box_right); }); element_g.style.whiteSpace="normal"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[width_box]="auto"; var rect_dziecko=element_g.getBoundingClientRect(); var width_box_real=parseFloat(comp.getPropertyValue(width_box)); element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width_box]))+"px"; element_g.style[width_box]=width_box_real+"px"; element_g.style[left_box]="0"; element_g.style[right_box]="auto"; rodzic_element.style.position="relative"; }else{ element_g.style.whiteSpace="nowrap"; var szerokosc_box=rect_dziecko[width_box]; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(szerokosc_box)+"px"; element_g.style[width_box]=(szerokosc_box)+"px"; Common.ScrollBarOverflow(); $(element_g).find('.mw-overflow-'+x_box+'.mw-not-overflow-'+x_box+'.mw-scrollbar-overflow-'+x_box).each(function(i,element){ var comp_element=window.getComputedStyle(element, null); element.style[width_box]=(element["scroll"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]+Common.PobierzSzerokoscPaskaPrzewijania(x_box_right)+parseFloat(comp_element.getPropertyValue('padding-'+left_box))+parseFloat(comp_element.getPropertyValue('padding-'+right_box)))+"px"; element.classList.remove('mw-scrollbar-overflow-'+x_box_right); }); element_g.style.whiteSpace="normal"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[width_box]="auto"; var rect_dziecko=element_g.getBoundingClientRect(); var szerokosc_box=rect_dziecko[width_box]; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(szerokosc_box)+"px"; element_g.style[width_box]=(szerokosc_box)+"px"; var szerokosc=rect_dziecko[width_box]+parseFloat(comp.getPropertyValue("margin-"+left_box))+parseFloat(comp.getPropertyValue("margin-"+right_box)); if(parseInt(szerokosc)>parseInt(width_rodzic)){ element_g.style[right_box]="0"; element_g.style[left_box]="auto"; rodzic_element.style.overflow="visible"; }else{ element_g.style[left_box]="0"; element_g.style[right_box]="auto"; rodzic_element.style.position="relative"; } } } element_g.style[height]="auto"; element_g.style[height]=(element_g["offset"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))])+"px"; Common.ScrollBarOverflow(); for(var i in pozycje_paskow){ pozycje_paskow[i][0].scrollTop=pozycje_paskow[i][1]; pozycje_paskow[i][0].scrollLeft=pozycje_paskow[i][2]; } } element_g.classList.add('mw-sticky-js'); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var visibility=comp.getPropertyValue("visibility"); if(visibility=="hidden"){return;} var position=comp.getPropertyValue("position"); if(position!="absolute"){return;} var sticky_x=$(element_g).hasClass('mw-sticky-x'); var sticky_y=$(element_g).hasClass('mw-sticky-y'); if((sticky_x)&&(!sticky_y)){ var str=$(element_g).parents('.strona_górna, .strona_dolna').first(); if(str.hasClass('strona_dolna')){ FunStickyXY("width","left","right","height","top","bottom","y","x"); }else if(str.hasClass('strona_górna')){ FunStickyXY("width","left","right","height","bottom","top","y","x"); } }else if((!sticky_x)&&(sticky_y)){ var str=$(element_g).parents('.strona_prawa, .strona_lewa').first(); if(str.hasClass('strona_prawa')){ FunStickyXY("height","top","bottom","width","left","right","x","y"); }else if(str.hasClass('strona_lewa')){ FunStickyXY("height","top","bottom","width","right","left","x","y"); } }else if((sticky_x)&&(sticky_y)){ FunStickyXY("width","left","right",null); FunStickyXY("height","top","bottom",null); } }); } $(function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); $(window).on('scroll', Common.StickyXY); $(window).on('resize', Common.StickyXY); /*Funkcja do ustawiania maksymalnego rozmiaru dziecka, względem rodzica, przy position:absolute*/ Common.OptimalXY=function(){ $('*.mw-optimal-x, *.mw-optimal-y').each(function(i,element_g){ var comp=window.getComputedStyle(element_g, null); function FunOptimalXY(width,left,right){ var pozycje_paskow=new Array(); $(element_g).find('*').each(function(i,element){ var comp=window.getComputedStyle(element, null); var overflow=comp.getPropertyValue("overflow"); var overflow_x=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); var overflow_y=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflow_x=="auto")||(overflow_x=="scroll")||(overflow_y=="auto")||(overflow_y=="scroll")){ pozycje_paskow.push(new Array(element,element.scrollTop,element.scrollLeft)); } }); var width_rodzic=null; var rodzic_node; var comp_rodz; $(element_g).parents('.mw-parent-node').first().each(function(i,element){ comp_rodz=window.getComputedStyle(element,null); width_rodzic=parseFloat(comp_rodz.getPropertyValue([width])); rodzic_node=element; }); if((width_rodzic!=null)&&(!isNaN(width_rodzic))){ element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; var width_box_real=parseFloat(comp.getPropertyValue(width)); var rect_dziecko=element_g.getBoundingClientRect(); if(width=="width"){ element_g.classList.remove('mw-scrollbar-overflow-x'); }else{ element_g.classList.remove('mw-scrollbar-overflow-y'); } if(parseInt(width_box_real)>parseInt(rect_dziecko[width])){ var rect_dziecko=element_g.getBoundingClientRect(); if(rect_dziecko[width]>width_rodzic){ if(width=="width"){ element_g.classList.add('mw-scrollbar-overflow-x'); }else{ element_g.classList.add('mw-scrollbar-overflow-y'); } } var width_box_real=parseFloat(comp.getPropertyValue(width)); var margin_all=parseFloat(comp.getPropertyValue("margin-"+left))+parseFloat(comp.getPropertyValue("margin-"+right)); margin_all+=parseFloat(comp_rodz.getPropertyValue("padding-"+left))+parseFloat(comp_rodz.getPropertyValue("padding-"+right)); var dlugosc=(width_rodzic-margin_all); dlugosc=((dlugosc>=0)?dlugosc:0); element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width]))+"px"; }else{ element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(rect_dziecko[width])+"px"; } var str=$(element_g).parents('.strona_prawa, .strona_lewa, .strona_górna, .strona_dolna').first(); if(!str.hasClass('strona_start-nawigacja_boksy')){ var rect_dziecko=element_g.getBoundingClientRect(); var szerokosc=rect_dziecko[width]+parseFloat(comp.getPropertyValue("margin-"+left))+parseFloat(comp.getPropertyValue("margin-"+right)); if(parseInt(szerokosc)>parseInt(width_rodzic)){ str.css('position','static'); }else{ str.css('position','relative'); } } } for(var i in pozycje_paskow){ pozycje_paskow[i][0].scrollTop=pozycje_paskow[i][1]; pozycje_paskow[i][0].scrollLeft=pozycje_paskow[i][2]; } }; element_g.classList.add('mw-optimal-js'); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var visibility=comp.getPropertyValue("visibility"); if(visibility=="hidden"){return;} var position=comp.getPropertyValue("position"); if(position!="absolute"){return;} var optimal_x=$(element_g).hasClass('mw-optimal-x'); var optimal_y=$(element_g).hasClass('mw-optimal-y'); if(optimal_x){ FunOptimalXY("width","left","right"); } if(optimal_y){ FunOptimalXY("height","top","bottom"); } }); } $(function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); $(window).on("scroll",Common.OptimalXY); $(window).on("resize",Common.OptimalXY); /*Uruchamianie dodatkowych funkcji, niż standardowe, w href w linkach rozwijanej tabeli TABLE lub ramki DIV, jeśli ona generuje zwiększenie rozmiarów, aby w rodzicu pojawił się pasek przewijania, z dodatkowymi opcjami generowanej przez arkusz kalkulacyjny CSS*/ Common.RamkiTableIDiv=function(obiekt,id_tabeli_lub_ramki,id_nazwa_a,fun_obiektu){ $(obiekt).each(function(i,element_f){ return new Promise(function(resolve,reject){ var czas=0; function Czekaj(){ if(czas>30000){ reject(); } var collapsebutton=$(element_f).find('a#'+id_nazwa_a+i); if((collapsebutton!==null)&&(collapsebutton.length>0)){ var tabele_lub_ramki=collapsebutton.parents('#'+id_tabeli_lub_ramki+i); if((tabele_lub_ramki===null)||(tabele_lub_ramki.length==0)){reject();} resolve(i); }else{ czas+=100; setTimeout(Czekaj,100); } } Czekaj(); }).then(function(i){ $('*.mw-overflow-x a#'+id_nazwa_a+i+', *.mw-overflow-y a#'+id_nazwa_a+i).each(function(j,element_g){ var href=element_g.getAttribute('href'); if((href!=null)&&(href!="")){ var col="[\\s;\\(\\,]*javascript:"+fun_obiektu.replace(/\./g,"\\.")+"\\s*\\(\\s*"+i+"\\s*\\)[\\s;\\)\\,]*"; var re_frame = new RegExp(col,'g'); var re_javascript=new RegExp("^[\\s;]*javascript:"); if((re_javascript.test(href))&&(re_frame.test(href))){ element_g.setAttribute('href',href.replace(/[;\s]*$/g,"")+';javascript:Common.ScrollBarOverflow();javascript:Common.StickyXY();javascript:Common.OptimalXY()') } } }); }).catch(function(){}); }); }; /*Dla menu rozwijanego tabeli TABLE zdefiniowanej na stronie MediaWiki:Common.js*/ Common.RamkiTableIDiv("table.collapsible",'collapsibleTable','collapseButton','Common.collapseTable'); /*Dla menu rozwijanej ramki DIV zdefiniowanej na stronie MediaWiki:Common.js*/ Common.RamkiTableIDiv("div.NavFrame",'NavFrame','NavToggle','Common.toggleNavigationBar'); /*Koniec dodatkowych funkcji*/ /*Uruchamianie dodatkowych zdarzeń do Common.StickyXY i OptimalXY*/ Common.ZdarzeniaDodatkoweFunkcyjneXY=function(css,fun_zdarz){ var fun_css=$(css); fun_css.on('mouseenter',fun_zdarz); fun_css.on('mouseleave',fun_zdarz); fun_css.on('transitionstart',fun_zdarz); fun_css.on('webkittransitionstart',fun_zdarz); fun_css.on('moztransitionstart',fun_zdarz); fun_css.on('otransitionstart',fun_zdarz); fun_css.on('transitionrun',fun_zdarz); fun_css.on('webkittransitionrun',fun_zdarz); fun_css.on('moztransitionrun',fun_zdarz); fun_css.on('otransitionrun',fun_zdarz); fun_css.on('transitioncancel',fun_zdarz); fun_css.on('webkittransitioncancel',fun_zdarz); fun_css.on('moztransitioncancel',fun_zdarz); fun_css.on('otransitioncancel',fun_zdarz); fun_css.on('transitionend',fun_zdarz); fun_css.on('webkittransitionend',fun_zdarz); fun_css.on('moztransitionend',fun_zdarz); fun_css.on('otransitionend',fun_zdarz); }; Common.ZdarzeniaDodatkoweFunkcyjneXY("*.mw-sticky-x, *.mw-sticky-y",Common.StickyXY); Common.ZdarzeniaDodatkoweFunkcyjneXY('*.mw-optimal-x, *.mw-optimal-y',Common.OptimalXY); /*Koniec dodatkowych zdarzeń*/ /*Program do obsługi szablonu StronaStart i jego pokrewnych książkowych*/ Common.StronaStart=function(){ var elements=$('.strona_start .strona .ciało_zawartości > .menu > .menu_boks'); elements.parent().show(); $('.strona_start').find('.strona_lewa .nawigacja_boksy, .strona_prawa .nawigacja_boksy').each(function(i,element){ $(element).css('visibility',"hidden"); }); $('.strona_start').find('.strona_lewa .nawigacja_spis, .strona_prawa .nawigacja_spis').each(function(i,element){ var czy_visible=$(element).css('visibility'); $(element).css('visibility',"visible"); var str=$(element).parents('.strona_prawa, .strona_lewa').first(); str.css('position','relative'); str.addClass('strona_start-nawigacja_spis'); str.removeClass('strona_start-nawigacja_boksy'); if(czy_visible=="hidden"){ $(Common.ScrollBarOverflow); $(Common.StickyXY); } }); function StronaStartFun(){ var id=this; $(id).parents('.strona_start').first().find('.strona .ciało_zawartości > .menu > .menu_boks').children().each(function(i,element){ var display=$(element).css('display'); if(display=="none"){ $(element).css('display',"block"); }else{ $(element).css('display',"none"); } }); $(id).parents('.strona_start').first().find('.strona_lewa, .strona_prawa').children().each(function(i,element){ var visibility=window.getComputedStyle(element, null).getPropertyValue('visibility'); if(visibility=="hidden"){ $(element).css('visibility',"visible"); var str=$(element).parents('.strona_prawa, .strona_lewa').first(); if($(element).hasClass('nawigacja_boksy')){ str.css('position','static'); str.addClass('strona_start-nawigacja_boksy'); str.removeClass('strona_start-nawigacja_spis'); $(Common.ScrollBarOverflow); $(Common.OptimalXY); }else if($(element).hasClass('nawigacja_spis')){ str.css('position','relative'); str.addClass('strona_start-nawigacja_spis'); str.removeClass('strona_start-nawigacja_boksy'); $(Common.ScrollBarOverflow); $(Common.StickyXY); } }else{ $(element).css('visibility',"hidden"); } }); } elements.on('click',StronaStartFun); } $(Common.StronaStart); 57mb1dwc8gs8ildmxaeclfp9tdon5m4 Szablon:StronaStart 10 19820 437137 437126 2022-08-07T15:23:42Z Persino 2851 wikitext text/x-wiki <includeonly><templatestyles src="Szablon:StronaStart/stronastart.css" /><templatestyles src="Szablon:TOC_limit/styles.css" />{{#if:{{{formatowanie|}}}|<templatestyles src="Szablon:StronaStart/styles.css" />{{#if:{{{boczne menu|}}}|{{#if:{{{spis treści|TOC}}}{{{wykaz modułów|WYKAZ}}}|<templatestyles src="Szablon:TOC/styles.css" />}}}}}}{{#ifeq:{{{boczne menu|}}}{{{spis treści|TOC}}}|||{{Mniejszy}}div class="strona_start" style="min-width:822px;width:auto;max-width:100%;height:auto;box-sizing:border-box;overflow:hidden;position:relative;"{{Większy}}{{Mniejszy}}div style="display:flex;flex-direction:column;"{{Większy}}{{#if:{{{podręcznik|tak}}}|{{Podręcznik|styl=order:1;}}}}{{Mniejszy}}div style="order:2;"{{Większy}} {{{nagłówek|}}}{{Mniejszy}}/div{{Większy}}{{Mniejszy}}div style="order:4;"{{Większy}} {{{stopka|}}}{{Mniejszy}}/div{{Większy}}{{Mniejszy}}div class="noprint" class="główna_strona tło" style="order:3;position:relative;top:0px;left:0px;display:flex;flex-direction:row;{{#if:{{{margines zewnętrzny|0}}}|margin:{{{margines zewnętrzny|0}}};}}"{{Większy}}{{#if:{{{boczne menu|}}}|__NOTOC__}}{{#if:{{{boczne menu|}}}{{{spis treści|TOC}}}{{{nagłówek prawy|}}}{{{stopka prawa|}}}| <div style="order:1;width:{{{lewa strona|auto}}};box-sizing:border-box;overflow:visible;position:relative;" class="strona_lewa mw-parent-node"><!-- --><div class="nawigacja_boksy" style="height:100%;width:auto;visibility:hidden;flex-direction:column;box-sizing:border-box;z-index:1;left:0"><!-- -->{{#if:{{{nagłówek lewy|}}}|<!-- -->{{Div|klasa=mw-optimal-x|styl=position:absolute;left:0;z-index:2;margin-right:5px|{{{nagłówek lewy}}}}}<!-- -->{{DivClear}}<!-- -->}}<!-- -->{{Div|styl=height:100%;box-sizing:border-box;}}<!-- -->{{#if:{{{stopka lewa|}}}|{{DivClear}}<!-- -->{{Div|klasa=mw-optimal-x|styl=position:absolute;left:0;z-index:2;margin-right:5px|{{{stopka lewa}}}}}<!-- -->}}<!-- --> </div><!-- --></div><!-- --><div style="width:{{{prawa strona|100%}}};box-sizing:border-box;order:3;overflow:visible;position:relative;" class="strona_prawa mw-parent-node"><div class="mw-sticky-y toclimit {{#if:{{{limit|}}}|toclimit-{{{limit}}}}} {{#if:{{{formatowanie|}}}|fonty_rodzina_sans {{#if:{{{boczne menu|}}}|fonty_poboczna_kolumna|fonty_toc}}}} spis nawigacja_spis" style="display:flex;flex-direction:column;z-index:2;position:absolute;left:0;top:0;width:{{#if:{{{boczne menu|}}}|700px|auto}};max-width:700px;box-sizing:border-box;{{#if:{{{margines zewnętrzny poboczny|0 0 0 5px}}}|margin:{{{margines zewnętrzny poboczny|0 0 0 5px}}};}}{{#if:{{{margines wewnętrzny poboczny|0}}}|padding:{{{margines wewnętrzny poboczny|0}}};}}{{#if:{{{czcionka {{#if:{{{boczne menu|}}}|bocznego menu|TOC}}|}}}|font:{{{czcionka {{#if:{{{boczne menu|}}}|bocznego menu|TOC}}|}}};}}{{#if:{{{czcionka {{#if:{{{boczne menu|}}}|bocznego menu|TOC}}|}}}||{{#if:{{{rozmiar czcionki {{#if:{{{boczne menu|}}}|bocznego menu|TOC}}|}}}|font-size:{{{rozmiar czcionki {{#if:{{{boczne menu|}}}|bocznego menu|TOC}}|}}};}}}}{{#if:{{{czcionka {{#if:{{{boczne menu|}}}|bocznego menu|TOC}}|}}}||{{#if:{{{wysokość linii czcionki {{#if:{{{boczne menu|}}}|bocznego menu|TOC}}|}}}|line-height:{{{wysokość linii czcionki {{#if:{{{boczne menu|}}}|bocznego menu|TOC}}|}}};}}}}{{#if:{{{czcionka {{#if:{{{boczne menu|}}}|bocznego menu|TOC}}|}}}||{{#if:{{{rodzina czcionki {{#if:{{{boczne menu|}}}|bocznego menu|TOC}}|}}}|font-family:{{{rodzina czcionki {{#if:{{{boczne menu|}}}|bocznego menu|TOC}}|}}};}}}}{{#if:{{{czcionka {{#if:{{{boczne menu|}}}|bocznego menu|TOC}}|}}}||{{#if:{{{wariant czcionki {{#if:{{{boczne menu|}}}|bocznego menu|TOC}}|}}}|font-variant:{{{wariant czcionki {{#if:{{{boczne menu|}}}|bocznego menu|TOC}}|}}};}}}}{{#if:{{{czcionka {{#if:{{{boczne menu|}}}|bocznego menu|TOC}}|}}}||{{#if:{{{rozciągnięcie czcionki {{#if:{{{boczne menu|}}}|bocznego menu|TOC}}|}}}|font-stretch:{{{rozciągnięcie czcionki {{#if:{{{boczne menu|}}}|bocznego menu|TOC}}|}}};}}}}{{#if:{{{czcionka {{#if:{{{boczne menu|}}}|bocznego menu|TOC}}|}}}||{{#if:{{{waga czcionki {{#if:{{{boczne menu|}}}|bocznego menu|TOC}}|}}}|font-weight:{{{waga czcionki {{#if:{{{boczne menu|}}}|bocznego menu|TOC}}|}}};}}}}{{#if:{{{czcionka {{#if:{{{boczne menu|}}}|bocznego menu|TOC}}|}}}||{{#if:{{{styl czcionki {{#if:{{{boczne menu|}}}|bocznego menu|TOC}}|}}}|font-style:{{{styl czcionki {{#if:{{{boczne menu|}}}|bocznego menu|TOC}}|}}};}}}};"><!-- -->{{#if:{{{boczne menu|}}}<!-- -->|{{#invoke:StronicowyParser|PierwszaStrona|{{{nazwa modułu|NAZWA MODUŁU}}}|{{{licencja|LICENCJA}}}|{{{wykaz modułów|WYKAZ}}}|{{{spis treści|TOC}}}|rozciągnij=tak|wysokość=100%|bez marginesu dolnego=tak}}<!-- -->|{{#switch:{{#invoke:Pudełko|Typ jednostki|obsługiwane jednostki użytkownika=tak|obsługiwane jednostki brudnopisu projektu=tak|obsługiwane strony jako niebrudnopisowe jednostki programowe=tak}}<!-- -->|podręcznik|podręcznik dla dzieci|podręcznik brudnopisu projektu|podręcznik użytkownika={{Jeśli niepuste|{{#invoke:StronicowyParser|WykazModolow|spis książkowy=tak|spis rzeczy=tak|nagłówki=tak|wysokość=100%}}|__NOTOC__{{TOC/silnik|funkcja=PokazanaNiewikitabelowaListaMenu|spis treści=Spis treści|spis artykułu=tak|limit={{{limit|}}}|bez dodatkowych sprawdzeń=tak|bez komunikatu błędu=tak|wysokość=100%}}|przed lewy={{Div start|styl=width:700px;background-color:white;display:flex;flex-direction:column;overflow:auto;}}{{StronaTytułowa|rozmiar=100%}}__NOTOC__|po lewy={{Div koniec}}}}<!-- -->|strona szablonu={{TOC/silnik|funkcja=PokazanaNiewikitabelowaListaMenu|spis treści=Spis treści|spis artykułu=tak|limit={{{limit|}}}|bez dodatkowych sprawdzeń=tak|bez komunikatu błędu=tak|wysokość=100%}}<!-- -->|#default=__NOTOC__{{TOC/silnik|funkcja=PokazanaNiewikitabelowaListaMenu|spis treści=Spis treści|spis artykułu=tak|limit={{{limit|}}}|bez dodatkowych sprawdzeń=tak|bez komunikatu błędu=tak|wysokość=100%}}<!-- -->}}<!-- -->}}<!-- --></div> <!-- --><div class="nawigacja_boksy" style="width:auto;height:100%;visibility:hidden;flex-direction:column;margin-top:0;box-sizing:border-box;z-index:1;right:0"><!-- -->{{#if:{{{nagłówek prawy|}}}|<!-- -->{{Div|klasa=mw-optimal-x|styl=position:absolute;right:0;z-index:2;margin-left:5px|{{{nagłówek prawy}}}}}<!-- -->{{DivClear}}<!-- -->}}<!-- -->{{Div|styl=height:100%;box-sizing:border-box;}}<!-- -->{{#if:{{{stopka prawa|}}}|{{DivClear}}<!-- -->{{Div|klasa=mw-optimal-x|styl=position:absolute;right:0;z-index:2;margin-left:5px;|{{{stopka prawa}}}}}<!-- -->}}<!-- --> </div><!-- --></div>}}<!-- -->}}{{#if:{{{boczne menu|}}}{{{spis treści|TOC}}}|{{Mniejszy}}div style="order:2;display:flex;flex-direction:column;" class="strona_środkowa"{{Większy}}<!-- --><div style="order:1">{{{wstęp|}}}</div><!-- --><div style="order:3">{{{zakończenie|}}}</div><!-- -->}}{{Mniejszy}}div id="strona" {{#if:{{{formatowanie|}}}|class="strona mw-overflow-x print fonty_rodzina_sans fonty_główna_kolumna {{#if:{{{boczne menu|}}}{{{spis treści|TOC}}}||strona_start}}"|class="strona {{#if:{{{boczne menu|}}}{{{spis treści|TOC}}}||strona_start}}"}} style="{{#if:{{{boczne menu|}}}{{{spis treści|TOC}}}|order:2;}}display:flex;flex-direction:column;position:relative;left:0px;top:0px;min-width:{{{minimalna szerokość strony|{{{szerokość strony|822px}}}}}};max-width:{{{maksymalna szerokość strony|{{{szerokość strony|822px}}}}}};width:{{{szerokość strony|822px}}};height:{{{wysokość strony|100%}}};{{#if:{{{obramowanie|tak}}}|border: solid #aaa 1px;}}{{#if:{{{margines wewnętrzny|10px 10px 10px 10px}}}|padding:{{{margines wewnętrzny|10px 10px 10px 10px}}};}}{{#if:{{{margines zewnętrzny główny|0}}}|margin:{{{margines zewnętrzny główny|0}}};}}{{#ifeq:{{{boczne menu|}}}{{{spis treści|TOC}}}||{{#if:{{{margines zewnętrzny|5px 0 0 0}}}|margin:{{{margines zewnętrzny|5px 0 0 0}}};}}}}{{#if:{{{pasek przewijania|hidden}}}|overflow-x:{{{pasek przewijania|hidden}}};overflow-y:visible;}}{{#if:{{{margines wewnętrzny|10px 10px 10px 10px}}}{{{obramowanie|tak}}}|box-sizing:border-box;}}{{#if:{{{czcionka strony|}}}|font:{{{czcionka strony|}}};}}{{#if:{{{czcionka strony|}}}||{{#if:{{{rozmiar czcionki strony|}}}|font-size:{{{rozmiar czcionki strony|}}};}}}}{{#if:{{{czcionka strony|}}}||{{#if:{{{wysokość linii czcionki strony|}}}|line-height:{{{wysokość linii czcionki strony|}}};}}}}{{#if:{{{czcionka strony|}}}||{{#if:{{{rodzina czcionki strony|}}}|font-family:{{{rodzina czcionki strony|}}};}}}}{{#if:{{{czcionka strony|}}}||{{#if:{{{wariant czcionki strony|}}}|font-variant:{{{wariant czcionki strony|}}};}}}}{{#if:{{{czcionka strony|}}}||{{#if:{{{rozciągnięcie czcionki strony|}}}|font-stretch:{{{rozciągnięcie czcionki strony|}}};}}}}{{#if:{{{czcionka strony|}}}||{{#if:{{{waga czcionki strony|}}}|font-weight:{{{waga czcionki strony|}}};}}}}{{#if:{{{czcionka strony|}}}||{{#if:{{{styl czcionki strony|}}}|font-style:{{{styl czcionki strony|}}};}}}}background-color:white;"{{Większy}}<!-- -->{{Mniejszy}}div id="ciało_kontener" class="ciało_kontener" style="display:flex;flex-direction:column"{{Większy}}<!-- -->{{Mniejszy}}div style="order:1;flex:0 1 auto;max-width:100%;"{{Większy}}{{{nagłówek strony|}}}{{Mniejszy}}/div{{Większy}}<!-- -->{{Mniejszy}}div style="order:3;flex:0 1 auto;max-width:100%;"{{Większy}}{{{stopka strony|}}}{{Mniejszy}}/div{{Większy}}<!-- -->{{Mniejszy}}div id="ciało_zawartości" class="ciało_zawartości" style="order:2;flex:0 1 auto;max-width:100%;"{{Większy}}<!-- -->{{#ifeq:{{{boczne menu|}}}{{{spis treści|TOC}}}|||<!-- --><div class="menu" style="display:none;"><!-- --><div class="menu_boks" style="margin-left:5px;margin-bottom:0;padding:0 5px;background-color:blue;color:white;float:right;width:auto;height:20px;border: solid #aaa 1px;text-align:center;position:relative;right:0;top:0;"><span style="display:inline">Boksy</span><span style="display:none;">Spis treści</span></div> [[Wikibooks:Prawa autorskie|Prawa autorskie]]{{•}} [[Wikibooks:Informacje prawne|Informacje prawne]]{{•}} [[Pomoc:Tworzenie podręczników|Tworzenie podręczników]]{{•}} [[Pomoc:Tworzenie podręcznika|Tworzenie podręcznika]]{{•}} [[Pomoc:Edycja kodu|Edycja kodu]]<!-- -->{{DivClear}}<!-- -->{{Hr|styl=margin-bottom:8px;}}<!-- --></div><!-- -->}}{{Mniejszy}}div id="ciało_strona" class="ciało_strona"{{Większy}}<!-- --></includeonly><noinclude>{{Dokumentacja}}</noinclude> jal64hab85yig4rtzi1zwvj5yhhlhv4 Wikibooks:Prośby do administratorów interfejsu/Zgłoszenia 4 33868 437164 436682 2022-08-07T18:55:36Z Wargo 17169 /* Aktualizacja skryptów na MediaWiki:common.js z Wikipedysta:Persino/common.js */ Odpowiedź wikitext text/x-wiki <noinclude>__LINKNOWEJSEKCJI__ [[Kategoria:Księga próśb i zadań]]</noinclude> {{fmbox|tekst=UWAGA: Nowe zgłoszenia o innym temacie niż to co dotyczy [[Wikibooks:Prośby do administratorów interfejsu/Zgłoszenia]] lub łamiące zasady [[Wikibooks:Wikietykieta|Wikietykiety]] mogą być bezwarunkowo wycofywane z tej strony}} <!-- Nowe zgłoszenia wstawiaj poniżej tej linii. Powyżej tej linii nic nie usuwaj. Nie usuwaj tej linii --> == Usunięcie wymuszenia białego tła w tabelach. == Zwracam się z prośbą o usunięcie [[MediaWiki:Common.css]] fragmentu <syntaxhighlight lang="css"> } + table.wikitable td, + table.prettytable td { + background: #f9f9f9; </syntaxhighlight> Fragment ten wymusza białe tło w tabelach, co uniemożliwia zastosowanie kolorowych komórek. Takowe bardzo by się przydały np. w opracowywanym przeze [[Zbiór zadań maturalnych/Biologia|Zbiorze zadań maturalnych z Biologii]] jak np. tu: [[:Kategoria:Zbiór zadań maturalnych/podstawa programowa 2017/Biologia/Zakres rozszerzony/Treści nauczania/II/3/1]]. Póki co posiłkuję się obramowaniem, chciałbym jednak docelowo zastosować kolorowanie komórek. Z góry dziękuję za rozpatrzenie mojej prośby. [[Wikipedysta:Superjurek|Superjurek]] ([[Dyskusja wikipedysty:Superjurek|dyskusja]]) 22:42, 16 kwi 2021 (CEST) ----- {{Ping|Superjurek}}Spróbuj użyć zapisu, np.: <syntaxhighlight lang="css"> background-color: blue !important; color:white !important; </syntaxhighlight> zamiast: <syntaxhighlight lang="css"> background-color: blue; color:white; </syntaxhighlight> to powinno naprawić cały problem! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 21:05, 27 maj 2022 (CEST) ==Wstawianie kodu do {{LinkKomunikat2|Common.js}}== Czy mógłbyś wsadzić do tej strony {{Code|.js}} kod: <syntaxhighlight lang="JavaScript"> function WyswietlStronyKsiazki(){ function WikikodTitle(data,tabs,titles,tabstrona){ var title=data.parse.title; var wikikod=data.parse.text['*']; var elements=tabstrona[title]; for(var q in elements){ elements[q].innerHTML=wikikod; var a=elements[q].getElementsByTagName('a'); if((a!==null)&&(a.length>0)){ var lena=a.length; for(var i=0;i<lena;++i){ var href=a[i].getAttribute('href'); if(href!==null){ var re=/^[^\?]+\?[^&]+=[^&]*&?/g; if(!re.test(href)){ var re2=/#/g; var s=href.search(re2); if(s!=-1){ var re=/^\/wiki\//g; if(re.test(href)){ var href2=href.substring(6,s) href2=decodeURI(href2); href2=href2.replace(/[_\s]+/g," "); for(var s=0;s<titles.length;s++){ var strona=titles[s]; if(href2==strona){ var href3=href.replace(/^[^#]*/g,""); var a_toc=a[i]; a_toc.setAttribute('href',encodeURI(href3)); a_toc.setAttribute("title",""); } } } }else{ var re=/^\/wiki\//g; if(re.test(href)){ var hrefv=href.replace(re,""); var hrefs=decodeURI(hrefv); hrefs=hrefs.replace(/[_\s]+/g," "); for(var s=0;s<titles.length;s++){ var strona=titles[s]; if(hrefs==strona){ var hrefs2=hrefv.replace(/^[^\/]*\//g,""); var a_toc=a[i]; a_toc.setAttribute('href','#'+hrefs2); a_toc.setAttribute("title",""); } } } } } } } } } var tab_toc=new Array("toc","toc_spis"); for(var d=0;d<tab_toc.length;++d){ var toc=document.getElementsByClassName(tab_toc[d]); if((toc!==null)&&(toc.length>0)){ for(var q in elements){ var num=new Array(); var v=0; for(var e=0;e<tabs.length;++e){ if(tabs[e]==title){ v+=1; if(parseInt(q)+1==v){ num.push(parseInt(e)+1); break; } } } var headline=elements[q].getElementsByClassName("mw-headline"); if((headline!==null)&&(headline.length>0)){ var ulozenie=0; var ostanie=0; var len=headline.length; var naglowek=""; var liczba_ulozenia_w_menu_spisu_tresci=1; var h_number=1; for (var k=0;k<len;++k){ var element2=headline[k]; var nag=element2.innerHTML; var nag2=element2.getAttribute('id'); var h=element2.parentNode.tagName; var h_numer=h.replace(/^[^\d]+/g,""); h_numer=parseInt(h_numer) if((ulozenie==0)||(ulozenie>=h_numer)){ ulozenie=h_numer-1; }else { if(ostatnie+1<h_numer-ulozenie){ ulozenie=h_numer-ostatnie-1; } } ostatnie=h_numer-ulozenie; h_numer=h_numer-ulozenie; if(k==0){ num.push(1); var nag="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext\">"+nag+"</span>"; naglowek+="<ul><li><a href=\"#"+nag2+"\">"+nag+"</a>"; }else{ if(h_numer==liczba_ulozenia_w_menu_spisu_tresci){ num[num.length-1]+=1; var nag="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext\">"+nag+"</span>"; naglowek+="</li><li><a href=\"#"+nag2+"\">"+nag+"</a>"; }else{ if(h_numer>liczba_ulozenia_w_menu_spisu_tresci){ num.push(1); var nag="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext\">"+nag+"</span>"; naglowek+="<ul><li><a href=\"#"+nag2+"\">"+nag+"</a>"; liczba_ulozenia_w_menu_spisu_tresci=h_numer; }else{ if(h_numer<liczba_ulozenia_w_menu_spisu_tresci){ num.splice(num.length-liczba_ulozenia_w_menu_spisu_tresci+h_numer,liczba_ulozenia_w_menu_spisu_tresci-h_numer); num[num.length-1]+=1; var nag="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext\">"+nag+"</span>"; naglowek+=('</li></ul>'.repeat(liczba_ulozenia_w_menu_spisu_tresci-h_numer))+"</li><li><a href=\"#"+nag2+"\">"+nag+"</a>"; liczba_ulozenia_w_menu_spisu_tresci=h_numer; } } } } } if(naglowek!=""){ naglowek+=('</li></ul>'.repeat(liczba_ulozenia_w_menu_spisu_tresci)); for(var b=0;b<toc.length;++b){ var a2=toc[b].getElementsByTagName('a'); if((a2!=null)&&(a2.length>0)){ for(var y=0;y<a2.length;++y){ var parent=a2[y].parentNode; var href=a2[y].getAttribute('href'); href=href.replace(/^#/g,""); var title2=title.replace(/^[^\/]+\//g,""); if(href==title2.replace(/[_ ]+/g,"_")+((q>0)?("_"+(parseInt(q)+1)):"")){ var div=document.createElement('div'); div.innerHTML=naglowek; var links=a2[y].getElementsByClassName('toctext'); if((links!=null)&&(links.length>0)){ var link=links[0].innerHTML; if(link==title2){ parent.appendChild(div.getElementsByTagName('ul')[0]); } } } } } } } } } } } for(var d=0;d<tab_toc.length;++d){ var toc_pos=document.getElementsByClassName(tab_toc[d]); if((toc_pos!==null)&&(toc_pos.length>0)){ for(var w=0;w<toc_pos.length;++w){ var li=toc_pos[w].getElementsByTagName('li'); var poziom; var section=1; for(var z=0;z<li.length;++z){ var parent=li[z].parentNode.parentNode; if(parent!==null){ var klasa=parent.getAttribute('class'); if(klasa!==null){ var poziom=klasa.match(/toclevel-\d+/g); if(poziom!==null){ poziom=parseInt(poziom.toString().match(/\d+$/).toString())+1; }else{ poziom=1; } }else{poziom=1;} }else{poziom=1;} var klasa=li[z].getAttribute('class'); if(klasa!==null){ var czy_section=klasa.match(/tocsection-\d+/); if(czy_section!==null){ klasa=klasa.replace(/tocsection-\d+/g,"tocsection-"+section); li[z].setAttribute('class',klasa); }else{ li[z].classList.add("tocsection-"+section); } var czy_level=klasa.match(/toclevel-\d+/); if(czy_level!==null){ klasa=li[z].getAttribute('class'); klasa=klasa.replace(/toclevel-\d+/g,"toclevel-"+poziom); li[z].setAttribute('class',klasa); }else{ li[z].classList.add("toclevel-"+poziom); } }else{ li[z].setAttribute('class',"toclevel-"+poziom+" tocsection-"+section) } section=section+1; } } } } var headline=document.getElementsByClassName('mw-headline'); if((headline)&&(headline.length>0)){ for(var i=0;i<headline.length;++i){ var c=1; var el=headline[i]; var id0=el.innerHTML; id0=id0.replace(/[_\s]+/g,"_"); id0=id0.replace(/<[^<>]+>/g,""); for(var j=0;j<i;++j){ var el1=headline[j]; var id1=el1.innerHTML; id1=id1.replace(/[_\s]+/g,"_"); id1=id1.replace(/<[^<>]+>/g,""); if(id0==id1){ ++c; } } if(c==1){ el.setAttribute('id',id0); }else{ el.setAttribute('id',id0+"_"+c); } } } var tab_toc=new Array("toc","toc_spis"); for(d=0;d<tab_toc.length;++d){ var toc_pos=document.getElementsByClassName(tab_toc[d]); if((toc_pos!==null)&&(toc_pos.length>0)){ for(var w=0;w<toc_pos.length;++w){ var toc=toc_pos[w]; var a=toc.getElementsByTagName('a'); if((a)&&(a.length>0)){ for(var p=0;p<a.length;++p){ var strona=a[p].getElementsByClassName('toctext')[0].innerHTML.replace(/[_\s]+/g,"_"); strona=strona.replace(/<[^<>]+>/g,""); var c=1; for(var v=0;v<p;++v){ var strona2; strona2=a[v].getElementsByClassName('toctext')[0].innerHTML.replace(/[_\s]+/g,"_"); strona2=strona2.replace(/<[^<>]+>/g,""); if(strona==strona2){ ++c; } } strona=strona.replace(/<[^<>]+>/g,""); if(c==1){ a[p].setAttribute('href',"#"+strona); }else{ a[p].setAttribute('href',"#"+strona+"_"+c); } } } } } } } function StronaSubst(data){ var wikikod=data.parse.text['*']; var elem=document.createElement('div'); elem.innerHTML=wikikod; var klasa_mw_parser_out=elem.getElementsByClassName('mw-parser-output'); var wikikod_wyodrepniony=(((klasa_mw_parser_out)&&(klasa_mw_parser_out.length==1))?(klasa_mw_parser_out[0].innerHTML):wikikod); var czy_wikikod=wikikod_wyodrepniony.match(/^\s*$/g); if(czy_wikikod){return;} var strona_subst="strona_subst"; var tagclass=document.getElementsByClassName(strona_subst); if(tagclass==null){return null;} var liczba_elementow=tagclass.length; if(liczba_elementow==0){return null;} var titles=new Array(); var tabstrona=new Array(); var tabs=new Array(); for (var i=0;i<liczba_elementow;++i){ var element=tagclass[i]; if(element.tagName!="DIV"){return null;} var strona=element.innerHTML; var re = /^[_ ]*$/g; var dopasowanie = re.test(strona); if(dopasowanie){return null;}; strona=strona.replace(/^[_ ]*/g,""); strona=strona.replace(/[_ ]*$/g,""); strona=strona.replace(/[_ ]+/g," "); tabs[i]=strona; var czy=false; for(var d in titles){ if(titles[d]==strona){ czy=true; break; } } if(!czy){ titles[titles.length]=strona; } if(tabstrona[strona]==null){ tabstrona[strona]=new Array(); } var tab=tabstrona[strona]; var tablen=tab.length; tabstrona[strona][tablen]=element; } for ( var p in titles ) { var strona=titles[p]; var api=new mw.Api; api.get({ action: 'parse', format: 'json', prop: 'text', title: strona, text: '{{:'+strona+'}}', disabletoc: true, disablelimitreport: true, contentmodel: 'wikitext' }).done(function(data){ WikikodTitle(data,tabs,titles,tabstrona); }); } } var strona = mw.config.get('wgPageName'); var api=new mw.Api; api.get({ action: 'parse', format: 'json', prop: 'text', title: strona, text: '{{#invoke:StronicowyParser|CzyStronaSubst}}', disabletoc: true, disablelimitreport: true, contentmodel: 'wikitext' }).done(function(data){ StronaSubst(data) }); } $(WyswietlStronyKsiazki); </syntaxhighlight> Ten program {{Code|.js}} znajduje się na stronie: {{LinkUżytkownik2|Persino/common.js}}. Jak wstawisz ten kod do strony {{LinkKomunikat2|Common.js}}, to powinno wtedy zadziałać ładowanie modułów książki, za pomocą JavaScript, na stronie {{LinkUżytkownik2|Persino/Wersja do druku}}. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 09:09, 13 lis 2021 (CET) == Gadżet StronaSubst - dodawanie do listy gadżetów == Mamy sobie kod JavaScript {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} i opis gadżetu {{LinkUżytkownik2|Persino/Gadget-StronaSubst}}, czy mógłbyś przenieść na strony w przestrzeni nazw {{Np|MediaWiki|link=tak}}, i wywołaniu gadżetu w takiej formie jak w {{LinkUżytkownik2|Persino/Gadgets-definition}} przenieść na stronę {{LinkKomunikat2|Gadgets-definition}}. Wtedy strona {{LinkUżytkownik2|Persino/Wersja do druku}} powinna działać! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 14:14, 27 lis 2021 (CET) === Zamienianie kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}} === {{Ping|Wargo}}Chodzi tutaj, że jak będzie link do artykułu w nagłówku, to, żeby nie pojawiało się pole '''[ artykuł | edytuj ]''' zamiast '''[ edytuj ]''' - aktualnie w {{LinkKomunikat2|Gadget-StronaSubst.js}} pole '''[ artykuł | edytuj ]''' pojawia się zawsze zamiast '''[ edytuj ]''', wtedy gdy ma zawartość '''strona_subst''' jest nie pusta, to algorytm jest zakańczany. A jak jest nazwa strony w zawartości div-a '''strona_subst''', a nie link w nagłówku, to wtedy ma się prawo pojawić '''[ artykuł | edytuj ]''' zamiast '''[ edytuj ]'''. Czy mógłbyś wersję {{LinkKomunikat2|Gadget-StronaSubst.js}} zamienić na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}. Z góry dziękuję za rozpatrzenie mojej prośby! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 10:13, 30 lis 2021 (CET) ---- {{Ping|Wargo}} Jeszcze, czy mógłbyś zamienić tekst w {{LinkKomunikat2|Gadget-StronaSubst}} z: {{Pre|(bez sekcji "Spis treści" i "Licencja")}} na {{Pre|(bez sekcji "Spis treści", "Bibliografia" i "Licencja")}} [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 19:18, 1 gru 2021 (CET) === Ostatnia poprawka kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}=== {{Ping|Wargo}}Chodzi tutaj, że algorytm zawiesza się na artykule {{LinkGłówna|Mechanika kwantowa/Mechanika kwantowa}}, to co poprawiłem już tak przestaje być, błąd znikł! Czy mógłbyś dokonać zamianę kodu? Proszę o pilną reakcję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 18:30, 3 gru 2021 (CET) === Miejmy nadzieję, że to jest ostatnia poprawka kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}=== {{Ping|Wargo}}Chodzi tutaj, że algorytm ma błędy JavaScript na stronie, przy danej książce: {{LinkGłówna|Szachy}}, czyli przy artykule: {{LinkGłówna|Szachy/Szachy}} - błąd tylko widać, gdy chcemy zbadać element, moja poprawka usuwa ten błąd! Czy mógłbyś dokonać zamianę kodu? Proszę o pilną reakcję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 15:50, 4 gru 2021 (CET) === Następna poprawka kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}} === {{Ping|Wargo}}Chodzi tutaj, że algorytm nie wyświetla w TOC (wbudowany spis treści) podrozdziałów dla artykułu {{LinkGłówna|Matematyka dla liceum/Matematyka dla liceum}}, moja poprawka usuwa ten błąd. Skrypt porządkuje artykuły według nagłówków na stronie tego artykułu w TOC, a zestaw artykułów, w danek sekcji, wyświetla, również w TOC, je przydzielone do niej. Czy mógłbyś dokonać zamianę kodu? Proszę o pilną reakcję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 14:51, 7 gru 2021 (CET) === Poważne poprawki w {{LinkKomunikat2|Gadget-StronaSubst.js}} na podstawie {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} oraz dodanie i zmiana pewnych gadżetów === {{Ping|Wargo}} Następne poprawki dotyczące wpisu w {{LinkKomunikat2|Gadget-StronaSubst.js}}, co do zauważonych drobnych błędów, czyli mógłbyś dokonać zamiany kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}. Z góry dziękuję. Poza tym wszystko działa, od razu dziękuję! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 19:32, 8 gru 2021 (CET) ---- {{Ping|Wargo}} Jeszcze, czy mógłbyś zamienić tekst w {{LinkKomunikat2|Gadget-StronaSubst}} z: {{Pre|(bez sekcji "Spis treści", "Bibliografia" i "Licencja")}} na {{Pre|(bez sekcji: "Spis treści", "Bibliografia", "Zobacz też", "Inne", "Licencja" i tym podobne)}} Dziękuję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 05:43, 9 gru 2021 (CET) ---- {{Ping|Wargo}} Czy mógłbyś uzupełnić {{LinkKomunikat2|Gadgets-definition}}, według {{LinkUżytkownik2|Persino/Gadgets-definition}} - szczególnie trzeba naprawić odwołanie do gadżetu StronaSubst, i dodać gadżety: {{LinkUżytkownik2|Persino/Gadget-gConfig.js}} (jego opis jest w {{LinkUżytkownik2|Persino/Gadget-gConfig}}), przenosząc go do {{LinkKomunikat2|Gadget-gConfig.js}} (jego opis do {{LinkKomunikat2|Gadget-gConfig}}), a także drugi gadżet dotyczący szablonu {{s|Cytuj}} przenieś z {{LinkUżytkownik2|Persino/Gadget-citation-access-info.js}} (jego opis to {{LinkUżytkownik2|Persino/Gadget-citation-access-info}}) do {{LinkKomunikat2|Gadget-citation-access-info.js}} (a jego opis do {{LinkKomunikat2|Gadget-citation-access-info}}). Gadżet '''gConfig''' potrzebny mi jest do gadżetu {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}}, którego zawartość należy przenieść do {{LinkKomunikat2|Gadget-StronaSubst.js}}, a gadżet {{LinkUżytkownik2|Persino/Gadget-citation-access-info.js}}, potrzebny mi jest do szablonu {{s|Cytuj}} do dymku do pełnej wersji tego szablonu, który należy przenieść do {{LinkKomunikat2|Gadget-citation-access-info.js}}. Proszę o pilną reakcję! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 15:04, 11 gru 2021 (CET) ---- Również proszę o zastąpienie strony komunikatu {{LinkKomunikat2|Gadget-map-toggler.js}} stroną {{LinkUżytkownik2|Persino/Gadget-map-toggler.js}}. Z góry dziękuję! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 18:38, 11 gru 2021 (CET) == Zamiana wartości linkowej i szablonowej == {{Ping|Wargo}}Czy mógłbyś zamienić na stronie: {{LinkUżytkownik2|Rychozol/common.js}}, z wartości: {{Nowiki|[[GNU Free Documentation License|GFDL]]}}, na: {{Nowiki|[[Wikibooks:GNU Free Documentation License|GFDL]]}}, a także na tej samej stronie wartość: {{s|clear}}, na {{s|BrClear}}, ponieważ ze względu na zmianę nazw stron. Z góry dziękuję! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 09:35, 13 gru 2021 (CET) <del>== Dalsze zmiany na stronach gadżetów (pilne) == {{Ping|Wargo}}Czy mógłbyś zainstalować gadżet "Gadget-gConfig", tak jak na stronie {{LinkUżytkownik2|Persino/Gadgets-definition}} (pierwsza linijka) w {{LinkKomunikat2|Gadgets-definition}}, a co do tego, jego kod {{LinkUżytkownik2|Persino/Gadget-gConfig.js}} zainstalować w miejscu {{LinkKomunikat2|Gadget-gConfig.js}} (jego opis jest w {{LinkUżytkownik2|Persino/Gadget-gConfig}}), przenosząc go do {{LinkKomunikat2|Gadget-gConfig.js}} (jego opis do {{LinkKomunikat2|Gadget-gConfig}}). A później zaaktualizuj gadżet {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}, a także zainstalować w miejscu {{LinkKomunikat2|Gadget-Funkcje.js}} gadżet {{LinkUżytkownik2|Persino/Gadget-Funkcje.js}}, a również zaktualizować wpis dla gadżetu StronaSubst tak jak w {{LinkUżytkownik2|Persino/Gadgets-definition}}. A później sprawdzić, czy wszystko działa. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 13:19, 4 lut 2022 (CET)</del> == Przepełnienie scrollbarów, poszczególnych elementów strony, a ustawienia różnych klas, jeżeli takowe istnieją == {{Ping|Wargo}}Czy mógłbyś uwzględnić na stronie {{LinkKomunikat2|Common.js}} część mojej strony, która jest po sekwencji /**/, będąca na stronie {{LinkUżytkownik2|Persino/common.js}}. Ten skrypt sprawdza, czy nastąpiło przepełnienie elementów strony dokumentu HTML Wikibooks, a jeżeli nastąpiło, to następuje ustawienie tam odpowiednich klas, a jeżeli ono znikło, to usunięcie tych klas. Ten skrypt jest mi potrzebny do szablonu {{s|StronaStart}} i jego pokrewnych oraz do mojego ustawienia skórki vector-2022, która jest w mojej przestrzeni użytkownika. Dziękuję za spełnienie mojej prośby. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 19:23, 27 maj 2022 (CEST) == Aktualizacja przepełnienia scrollbarów i implementacja sticky == {{Ping|Wargo}} Czy mógłbyś uwzględnić na stronie {{LinkKomunikat2|Common.js}} część mojej strony, która jest po sekwencji /**/, będąca na stronie {{LinkUżytkownik2|Persino/common.js}}. W przypadku pierwszego algorytmu, dodałem tam klasy {{Code|mw-overflow-x}} i {{Code|mw-overflow-y}}, które ten algorytm rozpoznaje, i dla nich liczy, czy nastąpiło to właśnie przepełnienie. A wcześniej liczyło dla wszystkich znaczników na stronie, co spowalniało całą stronę. Tam, gdzie, ważne jest liczenie przepełnienie wstawiłem {{Code|mw-overflow-x}}, czy {{Code|mw-overflow-y}}, czyli algorytm ten tam powinien działać, co można sprawdzić na stronie głównej tego projektu ({{NAZWASERWISU|link=tak}}). Drugi algorytm jest rozszerzenie właściwości {{Code|position:sticky}}, który on nie działa, gdy choćby jeden z rodziców jest z nie {{Code|overflow:visible}}, ale z {{Code|overflow}}, a ja zrobiłem, że jednak zaczeło działać, a ja tak to zrobiłem: {{Code|position:sticky}} zastąpiłem {{Code|position:absolute}}, w tym znaczników ustawiam {{Code|mw-sticky-y}} (przesuw w pionie) lub {{Code|mw-sticky-x}} (przesuw w poziomie), wtedy ten algorytm JavaScript działa tak, że pudełko przesuwa się od pewnej granicy do pewnej, ale nigdy nie wychodzi poza te granice, czyli działa podobnie jak {{Code|position:sticky}}. Dziękuję za spełnienie mojej prośby. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 12:41, 9 lip 2022 (CEST) ==Aktualizacja skryptów na {{LinkKomunikat2|common.js}} z {{LinkUżytkownik2|Persino/common.js}}== {{Ping|Wargo}} Czy mógłbyś zaktualizować kod na stronie {{LinkKomunikat2|common.js}} ze strony {{LinkUżytkownik2|Persino/common.js}} pod znakiem {{Code|/**/}}. Zdefiniowałem przestrzeń nazw {{Code|Common}} definicją: {{Pre|var Common{{=}}new Array();}} Prawie wszystkie funkcje ze strony {{LinkKomunikat2|common.js}} przeniosłem do tej przestrzeni na stronie {{LinkUżytkownik2|Persino/common.js}} (tutaj wszystkie funkcje są w przestrzeni {{Code|Common}}). Rozwinąłem funkcję {{Code|Common.ScrollBarOverflow}}, {{Code|Common.StickyXY}} i {{Code|Common.OptimalXY}}. Napisałem od nowa funkcje: {{Code|Common.RamkiTableIDiv}} i {{Code|Common.ZdarzeniaDodatkoweFunkcyjneXY}} oraz funkcję do obsługi szablonu {{s|StronaStart}} i jego pokrewnych książkowych z definiowałem w postaci: {{Code|Common.StronaStart}}. Co oznaczają te funkcje: * {{Code|Common.ScrollBarOverflow}} - do generowania pewnych klas, które służą do obsługi pudełka z paskami przewijania, * {{Code|Common.StickyXY}} - aktualizacja funkcji {{Code|position:sticky}}, tam gdzie go nie można go użyć, do używamy tej funkcji, * {{Code|Common.OptimalXY}} - do obsługi boksów na stronach z użytymi szablonami stronicowymi książkowymi otwierającymi i zamykającymi, * {{Code|Common.RamkiTableIDiv}} - dodaje dalsze funkcje przy przyciskach tabel i ramek, nawigacyjnych, * {{Code|Common.ZdarzeniaDodatkoweFunkcyjneXY}} - dodaje zdarzenia do obsługi funkcji: {{Code|Common.StickyXY}} i {{Code|Common.OptimalXY}}, * {{Code|Common.StronaStart}} - służy do obsługi spisu treści i boksów szablonu {{s|StronaStart}}. Na stronach podręcznikowych boksy i spisy treści są responsywne według moich ustawień, a dla wszystkich użytkowników będą responsywne po zaktualizowaniu strony {{LinkKomunikat2|common.js}} przy pomocy {{LinkUżytkownik2|Persino/common.js}}. ---- Proszę o pilną reakcję i zrealizowanie mojej prośby. Z góry dziękuję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 15:55, 3 sie 2022 (CEST) :Czy coś jest do usunięcia z obecnego common.js? Tj. czy coś stamtąd mam tym zastąpić? [[Wikipedysta:Wargo|Wargo]] ([[Dyskusja wikipedysty:Wargo|dyskusja]]) 20:55, 7 sie 2022 (CEST) b0af5wde8vkl3j9vhjy8nwk46b3ph25 437166 437164 2022-08-07T19:04:50Z Persino 2851 /* Aktualizacja skryptów na {{LinkKomunikat2|common.js}} z {{LinkUżytkownik2|Persino/common.js}} */ wikitext text/x-wiki <noinclude>__LINKNOWEJSEKCJI__ [[Kategoria:Księga próśb i zadań]]</noinclude> {{fmbox|tekst=UWAGA: Nowe zgłoszenia o innym temacie niż to co dotyczy [[Wikibooks:Prośby do administratorów interfejsu/Zgłoszenia]] lub łamiące zasady [[Wikibooks:Wikietykieta|Wikietykiety]] mogą być bezwarunkowo wycofywane z tej strony}} <!-- Nowe zgłoszenia wstawiaj poniżej tej linii. Powyżej tej linii nic nie usuwaj. Nie usuwaj tej linii --> == Usunięcie wymuszenia białego tła w tabelach. == Zwracam się z prośbą o usunięcie [[MediaWiki:Common.css]] fragmentu <syntaxhighlight lang="css"> } + table.wikitable td, + table.prettytable td { + background: #f9f9f9; </syntaxhighlight> Fragment ten wymusza białe tło w tabelach, co uniemożliwia zastosowanie kolorowych komórek. Takowe bardzo by się przydały np. w opracowywanym przeze [[Zbiór zadań maturalnych/Biologia|Zbiorze zadań maturalnych z Biologii]] jak np. tu: [[:Kategoria:Zbiór zadań maturalnych/podstawa programowa 2017/Biologia/Zakres rozszerzony/Treści nauczania/II/3/1]]. Póki co posiłkuję się obramowaniem, chciałbym jednak docelowo zastosować kolorowanie komórek. Z góry dziękuję za rozpatrzenie mojej prośby. [[Wikipedysta:Superjurek|Superjurek]] ([[Dyskusja wikipedysty:Superjurek|dyskusja]]) 22:42, 16 kwi 2021 (CEST) ----- {{Ping|Superjurek}}Spróbuj użyć zapisu, np.: <syntaxhighlight lang="css"> background-color: blue !important; color:white !important; </syntaxhighlight> zamiast: <syntaxhighlight lang="css"> background-color: blue; color:white; </syntaxhighlight> to powinno naprawić cały problem! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 21:05, 27 maj 2022 (CEST) ==Wstawianie kodu do {{LinkKomunikat2|Common.js}}== Czy mógłbyś wsadzić do tej strony {{Code|.js}} kod: <syntaxhighlight lang="JavaScript"> function WyswietlStronyKsiazki(){ function WikikodTitle(data,tabs,titles,tabstrona){ var title=data.parse.title; var wikikod=data.parse.text['*']; var elements=tabstrona[title]; for(var q in elements){ elements[q].innerHTML=wikikod; var a=elements[q].getElementsByTagName('a'); if((a!==null)&&(a.length>0)){ var lena=a.length; for(var i=0;i<lena;++i){ var href=a[i].getAttribute('href'); if(href!==null){ var re=/^[^\?]+\?[^&]+=[^&]*&?/g; if(!re.test(href)){ var re2=/#/g; var s=href.search(re2); if(s!=-1){ var re=/^\/wiki\//g; if(re.test(href)){ var href2=href.substring(6,s) href2=decodeURI(href2); href2=href2.replace(/[_\s]+/g," "); for(var s=0;s<titles.length;s++){ var strona=titles[s]; if(href2==strona){ var href3=href.replace(/^[^#]*/g,""); var a_toc=a[i]; a_toc.setAttribute('href',encodeURI(href3)); a_toc.setAttribute("title",""); } } } }else{ var re=/^\/wiki\//g; if(re.test(href)){ var hrefv=href.replace(re,""); var hrefs=decodeURI(hrefv); hrefs=hrefs.replace(/[_\s]+/g," "); for(var s=0;s<titles.length;s++){ var strona=titles[s]; if(hrefs==strona){ var hrefs2=hrefv.replace(/^[^\/]*\//g,""); var a_toc=a[i]; a_toc.setAttribute('href','#'+hrefs2); a_toc.setAttribute("title",""); } } } } } } } } } var tab_toc=new Array("toc","toc_spis"); for(var d=0;d<tab_toc.length;++d){ var toc=document.getElementsByClassName(tab_toc[d]); if((toc!==null)&&(toc.length>0)){ for(var q in elements){ var num=new Array(); var v=0; for(var e=0;e<tabs.length;++e){ if(tabs[e]==title){ v+=1; if(parseInt(q)+1==v){ num.push(parseInt(e)+1); break; } } } var headline=elements[q].getElementsByClassName("mw-headline"); if((headline!==null)&&(headline.length>0)){ var ulozenie=0; var ostanie=0; var len=headline.length; var naglowek=""; var liczba_ulozenia_w_menu_spisu_tresci=1; var h_number=1; for (var k=0;k<len;++k){ var element2=headline[k]; var nag=element2.innerHTML; var nag2=element2.getAttribute('id'); var h=element2.parentNode.tagName; var h_numer=h.replace(/^[^\d]+/g,""); h_numer=parseInt(h_numer) if((ulozenie==0)||(ulozenie>=h_numer)){ ulozenie=h_numer-1; }else { if(ostatnie+1<h_numer-ulozenie){ ulozenie=h_numer-ostatnie-1; } } ostatnie=h_numer-ulozenie; h_numer=h_numer-ulozenie; if(k==0){ num.push(1); var nag="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext\">"+nag+"</span>"; naglowek+="<ul><li><a href=\"#"+nag2+"\">"+nag+"</a>"; }else{ if(h_numer==liczba_ulozenia_w_menu_spisu_tresci){ num[num.length-1]+=1; var nag="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext\">"+nag+"</span>"; naglowek+="</li><li><a href=\"#"+nag2+"\">"+nag+"</a>"; }else{ if(h_numer>liczba_ulozenia_w_menu_spisu_tresci){ num.push(1); var nag="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext\">"+nag+"</span>"; naglowek+="<ul><li><a href=\"#"+nag2+"\">"+nag+"</a>"; liczba_ulozenia_w_menu_spisu_tresci=h_numer; }else{ if(h_numer<liczba_ulozenia_w_menu_spisu_tresci){ num.splice(num.length-liczba_ulozenia_w_menu_spisu_tresci+h_numer,liczba_ulozenia_w_menu_spisu_tresci-h_numer); num[num.length-1]+=1; var nag="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext\">"+nag+"</span>"; naglowek+=('</li></ul>'.repeat(liczba_ulozenia_w_menu_spisu_tresci-h_numer))+"</li><li><a href=\"#"+nag2+"\">"+nag+"</a>"; liczba_ulozenia_w_menu_spisu_tresci=h_numer; } } } } } if(naglowek!=""){ naglowek+=('</li></ul>'.repeat(liczba_ulozenia_w_menu_spisu_tresci)); for(var b=0;b<toc.length;++b){ var a2=toc[b].getElementsByTagName('a'); if((a2!=null)&&(a2.length>0)){ for(var y=0;y<a2.length;++y){ var parent=a2[y].parentNode; var href=a2[y].getAttribute('href'); href=href.replace(/^#/g,""); var title2=title.replace(/^[^\/]+\//g,""); if(href==title2.replace(/[_ ]+/g,"_")+((q>0)?("_"+(parseInt(q)+1)):"")){ var div=document.createElement('div'); div.innerHTML=naglowek; var links=a2[y].getElementsByClassName('toctext'); if((links!=null)&&(links.length>0)){ var link=links[0].innerHTML; if(link==title2){ parent.appendChild(div.getElementsByTagName('ul')[0]); } } } } } } } } } } } for(var d=0;d<tab_toc.length;++d){ var toc_pos=document.getElementsByClassName(tab_toc[d]); if((toc_pos!==null)&&(toc_pos.length>0)){ for(var w=0;w<toc_pos.length;++w){ var li=toc_pos[w].getElementsByTagName('li'); var poziom; var section=1; for(var z=0;z<li.length;++z){ var parent=li[z].parentNode.parentNode; if(parent!==null){ var klasa=parent.getAttribute('class'); if(klasa!==null){ var poziom=klasa.match(/toclevel-\d+/g); if(poziom!==null){ poziom=parseInt(poziom.toString().match(/\d+$/).toString())+1; }else{ poziom=1; } }else{poziom=1;} }else{poziom=1;} var klasa=li[z].getAttribute('class'); if(klasa!==null){ var czy_section=klasa.match(/tocsection-\d+/); if(czy_section!==null){ klasa=klasa.replace(/tocsection-\d+/g,"tocsection-"+section); li[z].setAttribute('class',klasa); }else{ li[z].classList.add("tocsection-"+section); } var czy_level=klasa.match(/toclevel-\d+/); if(czy_level!==null){ klasa=li[z].getAttribute('class'); klasa=klasa.replace(/toclevel-\d+/g,"toclevel-"+poziom); li[z].setAttribute('class',klasa); }else{ li[z].classList.add("toclevel-"+poziom); } }else{ li[z].setAttribute('class',"toclevel-"+poziom+" tocsection-"+section) } section=section+1; } } } } var headline=document.getElementsByClassName('mw-headline'); if((headline)&&(headline.length>0)){ for(var i=0;i<headline.length;++i){ var c=1; var el=headline[i]; var id0=el.innerHTML; id0=id0.replace(/[_\s]+/g,"_"); id0=id0.replace(/<[^<>]+>/g,""); for(var j=0;j<i;++j){ var el1=headline[j]; var id1=el1.innerHTML; id1=id1.replace(/[_\s]+/g,"_"); id1=id1.replace(/<[^<>]+>/g,""); if(id0==id1){ ++c; } } if(c==1){ el.setAttribute('id',id0); }else{ el.setAttribute('id',id0+"_"+c); } } } var tab_toc=new Array("toc","toc_spis"); for(d=0;d<tab_toc.length;++d){ var toc_pos=document.getElementsByClassName(tab_toc[d]); if((toc_pos!==null)&&(toc_pos.length>0)){ for(var w=0;w<toc_pos.length;++w){ var toc=toc_pos[w]; var a=toc.getElementsByTagName('a'); if((a)&&(a.length>0)){ for(var p=0;p<a.length;++p){ var strona=a[p].getElementsByClassName('toctext')[0].innerHTML.replace(/[_\s]+/g,"_"); strona=strona.replace(/<[^<>]+>/g,""); var c=1; for(var v=0;v<p;++v){ var strona2; strona2=a[v].getElementsByClassName('toctext')[0].innerHTML.replace(/[_\s]+/g,"_"); strona2=strona2.replace(/<[^<>]+>/g,""); if(strona==strona2){ ++c; } } strona=strona.replace(/<[^<>]+>/g,""); if(c==1){ a[p].setAttribute('href',"#"+strona); }else{ a[p].setAttribute('href',"#"+strona+"_"+c); } } } } } } } function StronaSubst(data){ var wikikod=data.parse.text['*']; var elem=document.createElement('div'); elem.innerHTML=wikikod; var klasa_mw_parser_out=elem.getElementsByClassName('mw-parser-output'); var wikikod_wyodrepniony=(((klasa_mw_parser_out)&&(klasa_mw_parser_out.length==1))?(klasa_mw_parser_out[0].innerHTML):wikikod); var czy_wikikod=wikikod_wyodrepniony.match(/^\s*$/g); if(czy_wikikod){return;} var strona_subst="strona_subst"; var tagclass=document.getElementsByClassName(strona_subst); if(tagclass==null){return null;} var liczba_elementow=tagclass.length; if(liczba_elementow==0){return null;} var titles=new Array(); var tabstrona=new Array(); var tabs=new Array(); for (var i=0;i<liczba_elementow;++i){ var element=tagclass[i]; if(element.tagName!="DIV"){return null;} var strona=element.innerHTML; var re = /^[_ ]*$/g; var dopasowanie = re.test(strona); if(dopasowanie){return null;}; strona=strona.replace(/^[_ ]*/g,""); strona=strona.replace(/[_ ]*$/g,""); strona=strona.replace(/[_ ]+/g," "); tabs[i]=strona; var czy=false; for(var d in titles){ if(titles[d]==strona){ czy=true; break; } } if(!czy){ titles[titles.length]=strona; } if(tabstrona[strona]==null){ tabstrona[strona]=new Array(); } var tab=tabstrona[strona]; var tablen=tab.length; tabstrona[strona][tablen]=element; } for ( var p in titles ) { var strona=titles[p]; var api=new mw.Api; api.get({ action: 'parse', format: 'json', prop: 'text', title: strona, text: '{{:'+strona+'}}', disabletoc: true, disablelimitreport: true, contentmodel: 'wikitext' }).done(function(data){ WikikodTitle(data,tabs,titles,tabstrona); }); } } var strona = mw.config.get('wgPageName'); var api=new mw.Api; api.get({ action: 'parse', format: 'json', prop: 'text', title: strona, text: '{{#invoke:StronicowyParser|CzyStronaSubst}}', disabletoc: true, disablelimitreport: true, contentmodel: 'wikitext' }).done(function(data){ StronaSubst(data) }); } $(WyswietlStronyKsiazki); </syntaxhighlight> Ten program {{Code|.js}} znajduje się na stronie: {{LinkUżytkownik2|Persino/common.js}}. Jak wstawisz ten kod do strony {{LinkKomunikat2|Common.js}}, to powinno wtedy zadziałać ładowanie modułów książki, za pomocą JavaScript, na stronie {{LinkUżytkownik2|Persino/Wersja do druku}}. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 09:09, 13 lis 2021 (CET) == Gadżet StronaSubst - dodawanie do listy gadżetów == Mamy sobie kod JavaScript {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} i opis gadżetu {{LinkUżytkownik2|Persino/Gadget-StronaSubst}}, czy mógłbyś przenieść na strony w przestrzeni nazw {{Np|MediaWiki|link=tak}}, i wywołaniu gadżetu w takiej formie jak w {{LinkUżytkownik2|Persino/Gadgets-definition}} przenieść na stronę {{LinkKomunikat2|Gadgets-definition}}. Wtedy strona {{LinkUżytkownik2|Persino/Wersja do druku}} powinna działać! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 14:14, 27 lis 2021 (CET) === Zamienianie kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}} === {{Ping|Wargo}}Chodzi tutaj, że jak będzie link do artykułu w nagłówku, to, żeby nie pojawiało się pole '''[ artykuł | edytuj ]''' zamiast '''[ edytuj ]''' - aktualnie w {{LinkKomunikat2|Gadget-StronaSubst.js}} pole '''[ artykuł | edytuj ]''' pojawia się zawsze zamiast '''[ edytuj ]''', wtedy gdy ma zawartość '''strona_subst''' jest nie pusta, to algorytm jest zakańczany. A jak jest nazwa strony w zawartości div-a '''strona_subst''', a nie link w nagłówku, to wtedy ma się prawo pojawić '''[ artykuł | edytuj ]''' zamiast '''[ edytuj ]'''. Czy mógłbyś wersję {{LinkKomunikat2|Gadget-StronaSubst.js}} zamienić na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}. Z góry dziękuję za rozpatrzenie mojej prośby! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 10:13, 30 lis 2021 (CET) ---- {{Ping|Wargo}} Jeszcze, czy mógłbyś zamienić tekst w {{LinkKomunikat2|Gadget-StronaSubst}} z: {{Pre|(bez sekcji "Spis treści" i "Licencja")}} na {{Pre|(bez sekcji "Spis treści", "Bibliografia" i "Licencja")}} [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 19:18, 1 gru 2021 (CET) === Ostatnia poprawka kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}=== {{Ping|Wargo}}Chodzi tutaj, że algorytm zawiesza się na artykule {{LinkGłówna|Mechanika kwantowa/Mechanika kwantowa}}, to co poprawiłem już tak przestaje być, błąd znikł! Czy mógłbyś dokonać zamianę kodu? Proszę o pilną reakcję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 18:30, 3 gru 2021 (CET) === Miejmy nadzieję, że to jest ostatnia poprawka kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}=== {{Ping|Wargo}}Chodzi tutaj, że algorytm ma błędy JavaScript na stronie, przy danej książce: {{LinkGłówna|Szachy}}, czyli przy artykule: {{LinkGłówna|Szachy/Szachy}} - błąd tylko widać, gdy chcemy zbadać element, moja poprawka usuwa ten błąd! Czy mógłbyś dokonać zamianę kodu? Proszę o pilną reakcję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 15:50, 4 gru 2021 (CET) === Następna poprawka kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}} === {{Ping|Wargo}}Chodzi tutaj, że algorytm nie wyświetla w TOC (wbudowany spis treści) podrozdziałów dla artykułu {{LinkGłówna|Matematyka dla liceum/Matematyka dla liceum}}, moja poprawka usuwa ten błąd. Skrypt porządkuje artykuły według nagłówków na stronie tego artykułu w TOC, a zestaw artykułów, w danek sekcji, wyświetla, również w TOC, je przydzielone do niej. Czy mógłbyś dokonać zamianę kodu? Proszę o pilną reakcję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 14:51, 7 gru 2021 (CET) === Poważne poprawki w {{LinkKomunikat2|Gadget-StronaSubst.js}} na podstawie {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} oraz dodanie i zmiana pewnych gadżetów === {{Ping|Wargo}} Następne poprawki dotyczące wpisu w {{LinkKomunikat2|Gadget-StronaSubst.js}}, co do zauważonych drobnych błędów, czyli mógłbyś dokonać zamiany kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}. Z góry dziękuję. Poza tym wszystko działa, od razu dziękuję! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 19:32, 8 gru 2021 (CET) ---- {{Ping|Wargo}} Jeszcze, czy mógłbyś zamienić tekst w {{LinkKomunikat2|Gadget-StronaSubst}} z: {{Pre|(bez sekcji "Spis treści", "Bibliografia" i "Licencja")}} na {{Pre|(bez sekcji: "Spis treści", "Bibliografia", "Zobacz też", "Inne", "Licencja" i tym podobne)}} Dziękuję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 05:43, 9 gru 2021 (CET) ---- {{Ping|Wargo}} Czy mógłbyś uzupełnić {{LinkKomunikat2|Gadgets-definition}}, według {{LinkUżytkownik2|Persino/Gadgets-definition}} - szczególnie trzeba naprawić odwołanie do gadżetu StronaSubst, i dodać gadżety: {{LinkUżytkownik2|Persino/Gadget-gConfig.js}} (jego opis jest w {{LinkUżytkownik2|Persino/Gadget-gConfig}}), przenosząc go do {{LinkKomunikat2|Gadget-gConfig.js}} (jego opis do {{LinkKomunikat2|Gadget-gConfig}}), a także drugi gadżet dotyczący szablonu {{s|Cytuj}} przenieś z {{LinkUżytkownik2|Persino/Gadget-citation-access-info.js}} (jego opis to {{LinkUżytkownik2|Persino/Gadget-citation-access-info}}) do {{LinkKomunikat2|Gadget-citation-access-info.js}} (a jego opis do {{LinkKomunikat2|Gadget-citation-access-info}}). Gadżet '''gConfig''' potrzebny mi jest do gadżetu {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}}, którego zawartość należy przenieść do {{LinkKomunikat2|Gadget-StronaSubst.js}}, a gadżet {{LinkUżytkownik2|Persino/Gadget-citation-access-info.js}}, potrzebny mi jest do szablonu {{s|Cytuj}} do dymku do pełnej wersji tego szablonu, który należy przenieść do {{LinkKomunikat2|Gadget-citation-access-info.js}}. Proszę o pilną reakcję! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 15:04, 11 gru 2021 (CET) ---- Również proszę o zastąpienie strony komunikatu {{LinkKomunikat2|Gadget-map-toggler.js}} stroną {{LinkUżytkownik2|Persino/Gadget-map-toggler.js}}. Z góry dziękuję! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 18:38, 11 gru 2021 (CET) == Zamiana wartości linkowej i szablonowej == {{Ping|Wargo}}Czy mógłbyś zamienić na stronie: {{LinkUżytkownik2|Rychozol/common.js}}, z wartości: {{Nowiki|[[GNU Free Documentation License|GFDL]]}}, na: {{Nowiki|[[Wikibooks:GNU Free Documentation License|GFDL]]}}, a także na tej samej stronie wartość: {{s|clear}}, na {{s|BrClear}}, ponieważ ze względu na zmianę nazw stron. Z góry dziękuję! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 09:35, 13 gru 2021 (CET) <del>== Dalsze zmiany na stronach gadżetów (pilne) == {{Ping|Wargo}}Czy mógłbyś zainstalować gadżet "Gadget-gConfig", tak jak na stronie {{LinkUżytkownik2|Persino/Gadgets-definition}} (pierwsza linijka) w {{LinkKomunikat2|Gadgets-definition}}, a co do tego, jego kod {{LinkUżytkownik2|Persino/Gadget-gConfig.js}} zainstalować w miejscu {{LinkKomunikat2|Gadget-gConfig.js}} (jego opis jest w {{LinkUżytkownik2|Persino/Gadget-gConfig}}), przenosząc go do {{LinkKomunikat2|Gadget-gConfig.js}} (jego opis do {{LinkKomunikat2|Gadget-gConfig}}). A później zaaktualizuj gadżet {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}, a także zainstalować w miejscu {{LinkKomunikat2|Gadget-Funkcje.js}} gadżet {{LinkUżytkownik2|Persino/Gadget-Funkcje.js}}, a również zaktualizować wpis dla gadżetu StronaSubst tak jak w {{LinkUżytkownik2|Persino/Gadgets-definition}}. A później sprawdzić, czy wszystko działa. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 13:19, 4 lut 2022 (CET)</del> == Przepełnienie scrollbarów, poszczególnych elementów strony, a ustawienia różnych klas, jeżeli takowe istnieją == {{Ping|Wargo}}Czy mógłbyś uwzględnić na stronie {{LinkKomunikat2|Common.js}} część mojej strony, która jest po sekwencji /**/, będąca na stronie {{LinkUżytkownik2|Persino/common.js}}. Ten skrypt sprawdza, czy nastąpiło przepełnienie elementów strony dokumentu HTML Wikibooks, a jeżeli nastąpiło, to następuje ustawienie tam odpowiednich klas, a jeżeli ono znikło, to usunięcie tych klas. Ten skrypt jest mi potrzebny do szablonu {{s|StronaStart}} i jego pokrewnych oraz do mojego ustawienia skórki vector-2022, która jest w mojej przestrzeni użytkownika. Dziękuję za spełnienie mojej prośby. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 19:23, 27 maj 2022 (CEST) == Aktualizacja przepełnienia scrollbarów i implementacja sticky == {{Ping|Wargo}} Czy mógłbyś uwzględnić na stronie {{LinkKomunikat2|Common.js}} część mojej strony, która jest po sekwencji /**/, będąca na stronie {{LinkUżytkownik2|Persino/common.js}}. W przypadku pierwszego algorytmu, dodałem tam klasy {{Code|mw-overflow-x}} i {{Code|mw-overflow-y}}, które ten algorytm rozpoznaje, i dla nich liczy, czy nastąpiło to właśnie przepełnienie. A wcześniej liczyło dla wszystkich znaczników na stronie, co spowalniało całą stronę. Tam, gdzie, ważne jest liczenie przepełnienie wstawiłem {{Code|mw-overflow-x}}, czy {{Code|mw-overflow-y}}, czyli algorytm ten tam powinien działać, co można sprawdzić na stronie głównej tego projektu ({{NAZWASERWISU|link=tak}}). Drugi algorytm jest rozszerzenie właściwości {{Code|position:sticky}}, który on nie działa, gdy choćby jeden z rodziców jest z nie {{Code|overflow:visible}}, ale z {{Code|overflow}}, a ja zrobiłem, że jednak zaczeło działać, a ja tak to zrobiłem: {{Code|position:sticky}} zastąpiłem {{Code|position:absolute}}, w tym znaczników ustawiam {{Code|mw-sticky-y}} (przesuw w pionie) lub {{Code|mw-sticky-x}} (przesuw w poziomie), wtedy ten algorytm JavaScript działa tak, że pudełko przesuwa się od pewnej granicy do pewnej, ale nigdy nie wychodzi poza te granice, czyli działa podobnie jak {{Code|position:sticky}}. Dziękuję za spełnienie mojej prośby. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 12:41, 9 lip 2022 (CEST) ==Aktualizacja skryptów na {{LinkKomunikat2|common.js}} z {{LinkUżytkownik2|Persino/common.js}}== {{Ping|Wargo}} Czy mógłbyś zaktualizować kod na stronie {{LinkKomunikat2|common.js}} ze strony {{LinkUżytkownik2|Persino/common.js}} pod znakiem {{Code|/**/}}. Zdefiniowałem przestrzeń nazw {{Code|Common}} definicją: {{Pre|var Common{{=}}new Array();}} Prawie wszystkie funkcje ze strony {{LinkKomunikat2|common.js}} przeniosłem do tej przestrzeni na stronie {{LinkUżytkownik2|Persino/common.js}} (tutaj wszystkie funkcje są w przestrzeni {{Code|Common}}). Rozwinąłem funkcję {{Code|Common.ScrollBarOverflow}}, {{Code|Common.StickyXY}} i {{Code|Common.OptimalXY}}. Napisałem od nowa funkcje: {{Code|Common.RamkiTableIDiv}} i {{Code|Common.ZdarzeniaDodatkoweFunkcyjneXY}} oraz funkcję do obsługi szablonu {{s|StronaStart}} i jego pokrewnych książkowych z definiowałem w postaci: {{Code|Common.StronaStart}}. Co oznaczają te funkcje: * {{Code|Common.ScrollBarOverflow}} - do generowania pewnych klas, które służą do obsługi pudełka z paskami przewijania, * {{Code|Common.StickyXY}} - aktualizacja funkcji {{Code|position:sticky}}, tam gdzie go nie można go użyć, do używamy tej funkcji, * {{Code|Common.OptimalXY}} - do obsługi boksów na stronach z użytymi szablonami stronicowymi książkowymi otwierającymi i zamykającymi, * {{Code|Common.RamkiTableIDiv}} - dodaje dalsze funkcje przy przyciskach tabel i ramek, nawigacyjnych, * {{Code|Common.ZdarzeniaDodatkoweFunkcyjneXY}} - dodaje zdarzenia do obsługi funkcji: {{Code|Common.StickyXY}} i {{Code|Common.OptimalXY}}, * {{Code|Common.StronaStart}} - służy do obsługi spisu treści i boksów szablonu {{s|StronaStart}}. Na stronach podręcznikowych boksy i spisy treści są responsywne według moich ustawień, a dla wszystkich użytkowników będą responsywne po zaktualizowaniu strony {{LinkKomunikat2|common.js}} przy pomocy {{LinkUżytkownik2|Persino/common.js}}. ---- Proszę o pilną reakcję i zrealizowanie mojej prośby. Z góry dziękuję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 15:55, 3 sie 2022 (CEST) :Czy coś jest do usunięcia z obecnego common.js? Tj. czy coś stamtąd mam tym zastąpić? [[Wikipedysta:Wargo|Wargo]] ([[Dyskusja wikipedysty:Wargo|dyskusja]]) 20:55, 7 sie 2022 (CEST) ::{{Ping|Wargo}}Właśnie masz zastąpić nową wersją z pod /**/ z {{LinkUżytkownik2|Persino/common.js}} zastępując zawartość strony: {{LinkKomunikat2|common.js}}. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 21:04, 7 sie 2022 (CEST) m0s9s5wl0zem0koo7eafqwmourgcqzo 437167 437166 2022-08-07T19:11:06Z Persino 2851 wikitext text/x-wiki <noinclude>__LINKNOWEJSEKCJI__ [[Kategoria:Księga próśb i zadań]]</noinclude> {{fmbox|tekst=UWAGA: Nowe zgłoszenia o innym temacie niż to co dotyczy [[Wikibooks:Prośby do administratorów interfejsu/Zgłoszenia]] lub łamiące zasady [[Wikibooks:Wikietykieta|Wikietykiety]] mogą być bezwarunkowo wycofywane z tej strony}} <!-- Nowe zgłoszenia wstawiaj poniżej tej linii. Powyżej tej linii nic nie usuwaj. Nie usuwaj tej linii --> == Usunięcie wymuszenia białego tła w tabelach. == Zwracam się z prośbą o usunięcie [[MediaWiki:Common.css]] fragmentu <syntaxhighlight lang="css"> } + table.wikitable td, + table.prettytable td { + background: #f9f9f9; </syntaxhighlight> Fragment ten wymusza białe tło w tabelach, co uniemożliwia zastosowanie kolorowych komórek. Takowe bardzo by się przydały np. w opracowywanym przeze [[Zbiór zadań maturalnych/Biologia|Zbiorze zadań maturalnych z Biologii]] jak np. tu: [[:Kategoria:Zbiór zadań maturalnych/podstawa programowa 2017/Biologia/Zakres rozszerzony/Treści nauczania/II/3/1]]. Póki co posiłkuję się obramowaniem, chciałbym jednak docelowo zastosować kolorowanie komórek. Z góry dziękuję za rozpatrzenie mojej prośby. [[Wikipedysta:Superjurek|Superjurek]] ([[Dyskusja wikipedysty:Superjurek|dyskusja]]) 22:42, 16 kwi 2021 (CEST) ----- {{Ping|Superjurek}}Spróbuj użyć zapisu, np.: <syntaxhighlight lang="css"> background-color: blue !important; color:white !important; </syntaxhighlight> zamiast: <syntaxhighlight lang="css"> background-color: blue; color:white; </syntaxhighlight> to powinno naprawić cały problem! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 21:05, 27 maj 2022 (CEST) ==Wstawianie kodu do {{LinkKomunikat2|Common.js}}== Czy mógłbyś wsadzić do tej strony {{Code|.js}} kod: <syntaxhighlight lang="JavaScript"> function WyswietlStronyKsiazki(){ function WikikodTitle(data,tabs,titles,tabstrona){ var title=data.parse.title; var wikikod=data.parse.text['*']; var elements=tabstrona[title]; for(var q in elements){ elements[q].innerHTML=wikikod; var a=elements[q].getElementsByTagName('a'); if((a!==null)&&(a.length>0)){ var lena=a.length; for(var i=0;i<lena;++i){ var href=a[i].getAttribute('href'); if(href!==null){ var re=/^[^\?]+\?[^&]+=[^&]*&?/g; if(!re.test(href)){ var re2=/#/g; var s=href.search(re2); if(s!=-1){ var re=/^\/wiki\//g; if(re.test(href)){ var href2=href.substring(6,s) href2=decodeURI(href2); href2=href2.replace(/[_\s]+/g," "); for(var s=0;s<titles.length;s++){ var strona=titles[s]; if(href2==strona){ var href3=href.replace(/^[^#]*/g,""); var a_toc=a[i]; a_toc.setAttribute('href',encodeURI(href3)); a_toc.setAttribute("title",""); } } } }else{ var re=/^\/wiki\//g; if(re.test(href)){ var hrefv=href.replace(re,""); var hrefs=decodeURI(hrefv); hrefs=hrefs.replace(/[_\s]+/g," "); for(var s=0;s<titles.length;s++){ var strona=titles[s]; if(hrefs==strona){ var hrefs2=hrefv.replace(/^[^\/]*\//g,""); var a_toc=a[i]; a_toc.setAttribute('href','#'+hrefs2); a_toc.setAttribute("title",""); } } } } } } } } } var tab_toc=new Array("toc","toc_spis"); for(var d=0;d<tab_toc.length;++d){ var toc=document.getElementsByClassName(tab_toc[d]); if((toc!==null)&&(toc.length>0)){ for(var q in elements){ var num=new Array(); var v=0; for(var e=0;e<tabs.length;++e){ if(tabs[e]==title){ v+=1; if(parseInt(q)+1==v){ num.push(parseInt(e)+1); break; } } } var headline=elements[q].getElementsByClassName("mw-headline"); if((headline!==null)&&(headline.length>0)){ var ulozenie=0; var ostanie=0; var len=headline.length; var naglowek=""; var liczba_ulozenia_w_menu_spisu_tresci=1; var h_number=1; for (var k=0;k<len;++k){ var element2=headline[k]; var nag=element2.innerHTML; var nag2=element2.getAttribute('id'); var h=element2.parentNode.tagName; var h_numer=h.replace(/^[^\d]+/g,""); h_numer=parseInt(h_numer) if((ulozenie==0)||(ulozenie>=h_numer)){ ulozenie=h_numer-1; }else { if(ostatnie+1<h_numer-ulozenie){ ulozenie=h_numer-ostatnie-1; } } ostatnie=h_numer-ulozenie; h_numer=h_numer-ulozenie; if(k==0){ num.push(1); var nag="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext\">"+nag+"</span>"; naglowek+="<ul><li><a href=\"#"+nag2+"\">"+nag+"</a>"; }else{ if(h_numer==liczba_ulozenia_w_menu_spisu_tresci){ num[num.length-1]+=1; var nag="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext\">"+nag+"</span>"; naglowek+="</li><li><a href=\"#"+nag2+"\">"+nag+"</a>"; }else{ if(h_numer>liczba_ulozenia_w_menu_spisu_tresci){ num.push(1); var nag="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext\">"+nag+"</span>"; naglowek+="<ul><li><a href=\"#"+nag2+"\">"+nag+"</a>"; liczba_ulozenia_w_menu_spisu_tresci=h_numer; }else{ if(h_numer<liczba_ulozenia_w_menu_spisu_tresci){ num.splice(num.length-liczba_ulozenia_w_menu_spisu_tresci+h_numer,liczba_ulozenia_w_menu_spisu_tresci-h_numer); num[num.length-1]+=1; var nag="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext\">"+nag+"</span>"; naglowek+=('</li></ul>'.repeat(liczba_ulozenia_w_menu_spisu_tresci-h_numer))+"</li><li><a href=\"#"+nag2+"\">"+nag+"</a>"; liczba_ulozenia_w_menu_spisu_tresci=h_numer; } } } } } if(naglowek!=""){ naglowek+=('</li></ul>'.repeat(liczba_ulozenia_w_menu_spisu_tresci)); for(var b=0;b<toc.length;++b){ var a2=toc[b].getElementsByTagName('a'); if((a2!=null)&&(a2.length>0)){ for(var y=0;y<a2.length;++y){ var parent=a2[y].parentNode; var href=a2[y].getAttribute('href'); href=href.replace(/^#/g,""); var title2=title.replace(/^[^\/]+\//g,""); if(href==title2.replace(/[_ ]+/g,"_")+((q>0)?("_"+(parseInt(q)+1)):"")){ var div=document.createElement('div'); div.innerHTML=naglowek; var links=a2[y].getElementsByClassName('toctext'); if((links!=null)&&(links.length>0)){ var link=links[0].innerHTML; if(link==title2){ parent.appendChild(div.getElementsByTagName('ul')[0]); } } } } } } } } } } } for(var d=0;d<tab_toc.length;++d){ var toc_pos=document.getElementsByClassName(tab_toc[d]); if((toc_pos!==null)&&(toc_pos.length>0)){ for(var w=0;w<toc_pos.length;++w){ var li=toc_pos[w].getElementsByTagName('li'); var poziom; var section=1; for(var z=0;z<li.length;++z){ var parent=li[z].parentNode.parentNode; if(parent!==null){ var klasa=parent.getAttribute('class'); if(klasa!==null){ var poziom=klasa.match(/toclevel-\d+/g); if(poziom!==null){ poziom=parseInt(poziom.toString().match(/\d+$/).toString())+1; }else{ poziom=1; } }else{poziom=1;} }else{poziom=1;} var klasa=li[z].getAttribute('class'); if(klasa!==null){ var czy_section=klasa.match(/tocsection-\d+/); if(czy_section!==null){ klasa=klasa.replace(/tocsection-\d+/g,"tocsection-"+section); li[z].setAttribute('class',klasa); }else{ li[z].classList.add("tocsection-"+section); } var czy_level=klasa.match(/toclevel-\d+/); if(czy_level!==null){ klasa=li[z].getAttribute('class'); klasa=klasa.replace(/toclevel-\d+/g,"toclevel-"+poziom); li[z].setAttribute('class',klasa); }else{ li[z].classList.add("toclevel-"+poziom); } }else{ li[z].setAttribute('class',"toclevel-"+poziom+" tocsection-"+section) } section=section+1; } } } } var headline=document.getElementsByClassName('mw-headline'); if((headline)&&(headline.length>0)){ for(var i=0;i<headline.length;++i){ var c=1; var el=headline[i]; var id0=el.innerHTML; id0=id0.replace(/[_\s]+/g,"_"); id0=id0.replace(/<[^<>]+>/g,""); for(var j=0;j<i;++j){ var el1=headline[j]; var id1=el1.innerHTML; id1=id1.replace(/[_\s]+/g,"_"); id1=id1.replace(/<[^<>]+>/g,""); if(id0==id1){ ++c; } } if(c==1){ el.setAttribute('id',id0); }else{ el.setAttribute('id',id0+"_"+c); } } } var tab_toc=new Array("toc","toc_spis"); for(d=0;d<tab_toc.length;++d){ var toc_pos=document.getElementsByClassName(tab_toc[d]); if((toc_pos!==null)&&(toc_pos.length>0)){ for(var w=0;w<toc_pos.length;++w){ var toc=toc_pos[w]; var a=toc.getElementsByTagName('a'); if((a)&&(a.length>0)){ for(var p=0;p<a.length;++p){ var strona=a[p].getElementsByClassName('toctext')[0].innerHTML.replace(/[_\s]+/g,"_"); strona=strona.replace(/<[^<>]+>/g,""); var c=1; for(var v=0;v<p;++v){ var strona2; strona2=a[v].getElementsByClassName('toctext')[0].innerHTML.replace(/[_\s]+/g,"_"); strona2=strona2.replace(/<[^<>]+>/g,""); if(strona==strona2){ ++c; } } strona=strona.replace(/<[^<>]+>/g,""); if(c==1){ a[p].setAttribute('href',"#"+strona); }else{ a[p].setAttribute('href',"#"+strona+"_"+c); } } } } } } } function StronaSubst(data){ var wikikod=data.parse.text['*']; var elem=document.createElement('div'); elem.innerHTML=wikikod; var klasa_mw_parser_out=elem.getElementsByClassName('mw-parser-output'); var wikikod_wyodrepniony=(((klasa_mw_parser_out)&&(klasa_mw_parser_out.length==1))?(klasa_mw_parser_out[0].innerHTML):wikikod); var czy_wikikod=wikikod_wyodrepniony.match(/^\s*$/g); if(czy_wikikod){return;} var strona_subst="strona_subst"; var tagclass=document.getElementsByClassName(strona_subst); if(tagclass==null){return null;} var liczba_elementow=tagclass.length; if(liczba_elementow==0){return null;} var titles=new Array(); var tabstrona=new Array(); var tabs=new Array(); for (var i=0;i<liczba_elementow;++i){ var element=tagclass[i]; if(element.tagName!="DIV"){return null;} var strona=element.innerHTML; var re = /^[_ ]*$/g; var dopasowanie = re.test(strona); if(dopasowanie){return null;}; strona=strona.replace(/^[_ ]*/g,""); strona=strona.replace(/[_ ]*$/g,""); strona=strona.replace(/[_ ]+/g," "); tabs[i]=strona; var czy=false; for(var d in titles){ if(titles[d]==strona){ czy=true; break; } } if(!czy){ titles[titles.length]=strona; } if(tabstrona[strona]==null){ tabstrona[strona]=new Array(); } var tab=tabstrona[strona]; var tablen=tab.length; tabstrona[strona][tablen]=element; } for ( var p in titles ) { var strona=titles[p]; var api=new mw.Api; api.get({ action: 'parse', format: 'json', prop: 'text', title: strona, text: '{{:'+strona+'}}', disabletoc: true, disablelimitreport: true, contentmodel: 'wikitext' }).done(function(data){ WikikodTitle(data,tabs,titles,tabstrona); }); } } var strona = mw.config.get('wgPageName'); var api=new mw.Api; api.get({ action: 'parse', format: 'json', prop: 'text', title: strona, text: '{{#invoke:StronicowyParser|CzyStronaSubst}}', disabletoc: true, disablelimitreport: true, contentmodel: 'wikitext' }).done(function(data){ StronaSubst(data) }); } $(WyswietlStronyKsiazki); </syntaxhighlight> Ten program {{Code|.js}} znajduje się na stronie: {{LinkUżytkownik2|Persino/common.js}}. Jak wstawisz ten kod do strony {{LinkKomunikat2|Common.js}}, to powinno wtedy zadziałać ładowanie modułów książki, za pomocą JavaScript, na stronie {{LinkUżytkownik2|Persino/Wersja do druku}}. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 09:09, 13 lis 2021 (CET) == Gadżet StronaSubst - dodawanie do listy gadżetów == Mamy sobie kod JavaScript {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} i opis gadżetu {{LinkUżytkownik2|Persino/Gadget-StronaSubst}}, czy mógłbyś przenieść na strony w przestrzeni nazw {{Np|MediaWiki|link=tak}}, i wywołaniu gadżetu w takiej formie jak w {{LinkUżytkownik2|Persino/Gadgets-definition}} przenieść na stronę {{LinkKomunikat2|Gadgets-definition}}. Wtedy strona {{LinkUżytkownik2|Persino/Wersja do druku}} powinna działać! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 14:14, 27 lis 2021 (CET) === Zamienianie kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}} === {{Ping|Wargo}}Chodzi tutaj, że jak będzie link do artykułu w nagłówku, to, żeby nie pojawiało się pole '''[ artykuł | edytuj ]''' zamiast '''[ edytuj ]''' - aktualnie w {{LinkKomunikat2|Gadget-StronaSubst.js}} pole '''[ artykuł | edytuj ]''' pojawia się zawsze zamiast '''[ edytuj ]''', wtedy gdy ma zawartość '''strona_subst''' jest nie pusta, to algorytm jest zakańczany. A jak jest nazwa strony w zawartości div-a '''strona_subst''', a nie link w nagłówku, to wtedy ma się prawo pojawić '''[ artykuł | edytuj ]''' zamiast '''[ edytuj ]'''. Czy mógłbyś wersję {{LinkKomunikat2|Gadget-StronaSubst.js}} zamienić na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}. Z góry dziękuję za rozpatrzenie mojej prośby! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 10:13, 30 lis 2021 (CET) ---- {{Ping|Wargo}} Jeszcze, czy mógłbyś zamienić tekst w {{LinkKomunikat2|Gadget-StronaSubst}} z: {{Pre|(bez sekcji "Spis treści" i "Licencja")}} na {{Pre|(bez sekcji "Spis treści", "Bibliografia" i "Licencja")}} [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 19:18, 1 gru 2021 (CET) === Ostatnia poprawka kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}=== {{Ping|Wargo}}Chodzi tutaj, że algorytm zawiesza się na artykule {{LinkGłówna|Mechanika kwantowa/Mechanika kwantowa}}, to co poprawiłem już tak przestaje być, błąd znikł! Czy mógłbyś dokonać zamianę kodu? Proszę o pilną reakcję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 18:30, 3 gru 2021 (CET) === Miejmy nadzieję, że to jest ostatnia poprawka kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}=== {{Ping|Wargo}}Chodzi tutaj, że algorytm ma błędy JavaScript na stronie, przy danej książce: {{LinkGłówna|Szachy}}, czyli przy artykule: {{LinkGłówna|Szachy/Szachy}} - błąd tylko widać, gdy chcemy zbadać element, moja poprawka usuwa ten błąd! Czy mógłbyś dokonać zamianę kodu? Proszę o pilną reakcję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 15:50, 4 gru 2021 (CET) === Następna poprawka kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}} === {{Ping|Wargo}}Chodzi tutaj, że algorytm nie wyświetla w TOC (wbudowany spis treści) podrozdziałów dla artykułu {{LinkGłówna|Matematyka dla liceum/Matematyka dla liceum}}, moja poprawka usuwa ten błąd. Skrypt porządkuje artykuły według nagłówków na stronie tego artykułu w TOC, a zestaw artykułów, w danek sekcji, wyświetla, również w TOC, je przydzielone do niej. Czy mógłbyś dokonać zamianę kodu? Proszę o pilną reakcję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 14:51, 7 gru 2021 (CET) === Poważne poprawki w {{LinkKomunikat2|Gadget-StronaSubst.js}} na podstawie {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} oraz dodanie i zmiana pewnych gadżetów === {{Ping|Wargo}} Następne poprawki dotyczące wpisu w {{LinkKomunikat2|Gadget-StronaSubst.js}}, co do zauważonych drobnych błędów, czyli mógłbyś dokonać zamiany kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}. Z góry dziękuję. Poza tym wszystko działa, od razu dziękuję! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 19:32, 8 gru 2021 (CET) ---- {{Ping|Wargo}} Jeszcze, czy mógłbyś zamienić tekst w {{LinkKomunikat2|Gadget-StronaSubst}} z: {{Pre|(bez sekcji "Spis treści", "Bibliografia" i "Licencja")}} na {{Pre|(bez sekcji: "Spis treści", "Bibliografia", "Zobacz też", "Inne", "Licencja" i tym podobne)}} Dziękuję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 05:43, 9 gru 2021 (CET) ---- {{Ping|Wargo}} Czy mógłbyś uzupełnić {{LinkKomunikat2|Gadgets-definition}}, według {{LinkUżytkownik2|Persino/Gadgets-definition}} - szczególnie trzeba naprawić odwołanie do gadżetu StronaSubst, i dodać gadżety: {{LinkUżytkownik2|Persino/Gadget-gConfig.js}} (jego opis jest w {{LinkUżytkownik2|Persino/Gadget-gConfig}}), przenosząc go do {{LinkKomunikat2|Gadget-gConfig.js}} (jego opis do {{LinkKomunikat2|Gadget-gConfig}}), a także drugi gadżet dotyczący szablonu {{s|Cytuj}} przenieś z {{LinkUżytkownik2|Persino/Gadget-citation-access-info.js}} (jego opis to {{LinkUżytkownik2|Persino/Gadget-citation-access-info}}) do {{LinkKomunikat2|Gadget-citation-access-info.js}} (a jego opis do {{LinkKomunikat2|Gadget-citation-access-info}}). Gadżet '''gConfig''' potrzebny mi jest do gadżetu {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}}, którego zawartość należy przenieść do {{LinkKomunikat2|Gadget-StronaSubst.js}}, a gadżet {{LinkUżytkownik2|Persino/Gadget-citation-access-info.js}}, potrzebny mi jest do szablonu {{s|Cytuj}} do dymku do pełnej wersji tego szablonu, który należy przenieść do {{LinkKomunikat2|Gadget-citation-access-info.js}}. Proszę o pilną reakcję! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 15:04, 11 gru 2021 (CET) ---- Również proszę o zastąpienie strony komunikatu {{LinkKomunikat2|Gadget-map-toggler.js}} stroną {{LinkUżytkownik2|Persino/Gadget-map-toggler.js}}. Z góry dziękuję! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 18:38, 11 gru 2021 (CET) == Zamiana wartości linkowej i szablonowej == {{Ping|Wargo}}Czy mógłbyś zamienić na stronie: {{LinkUżytkownik2|Rychozol/common.js}}, z wartości: {{Nowiki|[[GNU Free Documentation License|GFDL]]}}, na: {{Nowiki|[[Wikibooks:GNU Free Documentation License|GFDL]]}}, a także na tej samej stronie wartość: {{s|clear}}, na {{s|BrClear}}, ponieważ ze względu na zmianę nazw stron. Z góry dziękuję! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 09:35, 13 gru 2021 (CET) <del>== Dalsze zmiany na stronach gadżetów (pilne) == {{Ping|Wargo}}Czy mógłbyś zainstalować gadżet "Gadget-gConfig", tak jak na stronie {{LinkUżytkownik2|Persino/Gadgets-definition}} (pierwsza linijka) w {{LinkKomunikat2|Gadgets-definition}}, a co do tego, jego kod {{LinkUżytkownik2|Persino/Gadget-gConfig.js}} zainstalować w miejscu {{LinkKomunikat2|Gadget-gConfig.js}} (jego opis jest w {{LinkUżytkownik2|Persino/Gadget-gConfig}}), przenosząc go do {{LinkKomunikat2|Gadget-gConfig.js}} (jego opis do {{LinkKomunikat2|Gadget-gConfig}}). A później zaaktualizuj gadżet {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}, a także zainstalować w miejscu {{LinkKomunikat2|Gadget-Funkcje.js}} gadżet {{LinkUżytkownik2|Persino/Gadget-Funkcje.js}}, a również zaktualizować wpis dla gadżetu StronaSubst tak jak w {{LinkUżytkownik2|Persino/Gadgets-definition}}. A później sprawdzić, czy wszystko działa. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 13:19, 4 lut 2022 (CET)</del> == Przepełnienie scrollbarów, poszczególnych elementów strony, a ustawienia różnych klas, jeżeli takowe istnieją == {{Ping|Wargo}}Czy mógłbyś uwzględnić na stronie {{LinkKomunikat2|Common.js}} część mojej strony, która jest po sekwencji /**/, będąca na stronie {{LinkUżytkownik2|Persino/common.js}}. Ten skrypt sprawdza, czy nastąpiło przepełnienie elementów strony dokumentu HTML Wikibooks, a jeżeli nastąpiło, to następuje ustawienie tam odpowiednich klas, a jeżeli ono znikło, to usunięcie tych klas. Ten skrypt jest mi potrzebny do szablonu {{s|StronaStart}} i jego pokrewnych oraz do mojego ustawienia skórki vector-2022, która jest w mojej przestrzeni użytkownika. Dziękuję za spełnienie mojej prośby. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 19:23, 27 maj 2022 (CEST) == Aktualizacja przepełnienia scrollbarów i implementacja sticky == {{Ping|Wargo}} Czy mógłbyś uwzględnić na stronie {{LinkKomunikat2|Common.js}} część mojej strony, która jest po sekwencji /**/, będąca na stronie {{LinkUżytkownik2|Persino/common.js}}. W przypadku pierwszego algorytmu, dodałem tam klasy {{Code|mw-overflow-x}} i {{Code|mw-overflow-y}}, które ten algorytm rozpoznaje, i dla nich liczy, czy nastąpiło to właśnie przepełnienie. A wcześniej liczyło dla wszystkich znaczników na stronie, co spowalniało całą stronę. Tam, gdzie, ważne jest liczenie przepełnienie wstawiłem {{Code|mw-overflow-x}}, czy {{Code|mw-overflow-y}}, czyli algorytm ten tam powinien działać, co można sprawdzić na stronie głównej tego projektu ({{NAZWASERWISU|link=tak}}). Drugi algorytm jest rozszerzenie właściwości {{Code|position:sticky}}, który on nie działa, gdy choćby jeden z rodziców jest z nie {{Code|overflow:visible}}, ale z {{Code|overflow}}, a ja zrobiłem, że jednak zaczeło działać, a ja tak to zrobiłem: {{Code|position:sticky}} zastąpiłem {{Code|position:absolute}}, w tym znaczników ustawiam {{Code|mw-sticky-y}} (przesuw w pionie) lub {{Code|mw-sticky-x}} (przesuw w poziomie), wtedy ten algorytm JavaScript działa tak, że pudełko przesuwa się od pewnej granicy do pewnej, ale nigdy nie wychodzi poza te granice, czyli działa podobnie jak {{Code|position:sticky}}. Dziękuję za spełnienie mojej prośby. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 12:41, 9 lip 2022 (CEST) ==Aktualizacja skryptów na {{LinkKomunikat2|common.js}} z {{LinkUżytkownik2|Persino/common.js}}== {{Ping|Wargo}} Czy mógłbyś zaktualizować kod na stronie {{LinkKomunikat2|common.js}} ze strony {{LinkUżytkownik2|Persino/common.js}} pod znakiem {{Code|/**/}}. Zdefiniowałem przestrzeń nazw {{Code|Common}} definicją: {{Pre|var Common{{=}}new Array();}} Prawie wszystkie funkcje ze strony {{LinkKomunikat2|common.js}} przeniosłem do tej przestrzeni na stronie {{LinkUżytkownik2|Persino/common.js}} (tutaj wszystkie funkcje są w przestrzeni {{Code|Common}}). Rozwinąłem funkcję {{Code|Common.ScrollBarOverflow}}, {{Code|Common.StickyXY}} i {{Code|Common.OptimalXY}}. Napisałem od nowa funkcje: {{Code|Common.RamkiTableIDiv}} i {{Code|Common.ZdarzeniaDodatkoweFunkcyjneXY}} oraz funkcję do obsługi szablonu {{s|StronaStart}} i jego pokrewnych książkowych z definiowałem w postaci: {{Code|Common.StronaStart}}. Co oznaczają te funkcje: * {{Code|Common.ScrollBarOverflow}} - do generowania pewnych klas, które służą do obsługi pudełka z paskami przewijania, * {{Code|Common.StickyXY}} - aktualizacja funkcji {{Code|position:sticky}}, tam gdzie go nie można go użyć, do używamy tej funkcji, * {{Code|Common.OptimalXY}} - do obsługi boksów na stronach z użytymi szablonami stronicowymi książkowymi otwierającymi i zamykającymi, * {{Code|Common.RamkiTableIDiv}} - dodaje dalsze funkcje przy przyciskach tabel i ramek, nawigacyjnych, * {{Code|Common.ZdarzeniaDodatkoweFunkcyjneXY}} - dodaje zdarzenia do obsługi funkcji: {{Code|Common.StickyXY}} i {{Code|Common.OptimalXY}}, * {{Code|Common.StronaStart}} - służy do obsługi spisu treści i boksów szablonu {{s|StronaStart}}. Na stronach podręcznikowych boksy i spisy treści są responsywne według moich ustawień, a dla wszystkich użytkowników będą responsywne po zaktualizowaniu strony {{LinkKomunikat2|common.js}} przy pomocy {{LinkUżytkownik2|Persino/common.js}}. ---- Proszę o pilną reakcję i zrealizowanie mojej prośby. Z góry dziękuję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 15:55, 3 sie 2022 (CEST) :Czy coś jest do usunięcia z obecnego common.js? Tj. czy coś stamtąd mam tym zastąpić? [[Wikipedysta:Wargo|Wargo]] ([[Dyskusja wikipedysty:Wargo|dyskusja]]) 20:55, 7 sie 2022 (CEST) ::{{Ping|Wargo}}Właśnie masz zastąpić nową wersją z pod /**/ z {{LinkUżytkownik2|Persino/common.js}} zastępując całą zawartość strony: {{LinkKomunikat2|common.js}}. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 21:04, 7 sie 2022 (CEST) 7us72ggo3tyxeg2zohk1krjvt2vjorz 437169 437167 2022-08-07T19:22:10Z Persino 2851 /* Aktualizacja skryptów na {{LinkKomunikat2|common.js}} z {{LinkUżytkownik2|Persino/common.js}} */ wikitext text/x-wiki <noinclude>__LINKNOWEJSEKCJI__ [[Kategoria:Księga próśb i zadań]]</noinclude> {{fmbox|tekst=UWAGA: Nowe zgłoszenia o innym temacie niż to co dotyczy [[Wikibooks:Prośby do administratorów interfejsu/Zgłoszenia]] lub łamiące zasady [[Wikibooks:Wikietykieta|Wikietykiety]] mogą być bezwarunkowo wycofywane z tej strony}} <!-- Nowe zgłoszenia wstawiaj poniżej tej linii. Powyżej tej linii nic nie usuwaj. Nie usuwaj tej linii --> == Usunięcie wymuszenia białego tła w tabelach. == Zwracam się z prośbą o usunięcie [[MediaWiki:Common.css]] fragmentu <syntaxhighlight lang="css"> } + table.wikitable td, + table.prettytable td { + background: #f9f9f9; </syntaxhighlight> Fragment ten wymusza białe tło w tabelach, co uniemożliwia zastosowanie kolorowych komórek. Takowe bardzo by się przydały np. w opracowywanym przeze [[Zbiór zadań maturalnych/Biologia|Zbiorze zadań maturalnych z Biologii]] jak np. tu: [[:Kategoria:Zbiór zadań maturalnych/podstawa programowa 2017/Biologia/Zakres rozszerzony/Treści nauczania/II/3/1]]. Póki co posiłkuję się obramowaniem, chciałbym jednak docelowo zastosować kolorowanie komórek. Z góry dziękuję za rozpatrzenie mojej prośby. [[Wikipedysta:Superjurek|Superjurek]] ([[Dyskusja wikipedysty:Superjurek|dyskusja]]) 22:42, 16 kwi 2021 (CEST) ----- {{Ping|Superjurek}}Spróbuj użyć zapisu, np.: <syntaxhighlight lang="css"> background-color: blue !important; color:white !important; </syntaxhighlight> zamiast: <syntaxhighlight lang="css"> background-color: blue; color:white; </syntaxhighlight> to powinno naprawić cały problem! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 21:05, 27 maj 2022 (CEST) ==Wstawianie kodu do {{LinkKomunikat2|Common.js}}== Czy mógłbyś wsadzić do tej strony {{Code|.js}} kod: <syntaxhighlight lang="JavaScript"> function WyswietlStronyKsiazki(){ function WikikodTitle(data,tabs,titles,tabstrona){ var title=data.parse.title; var wikikod=data.parse.text['*']; var elements=tabstrona[title]; for(var q in elements){ elements[q].innerHTML=wikikod; var a=elements[q].getElementsByTagName('a'); if((a!==null)&&(a.length>0)){ var lena=a.length; for(var i=0;i<lena;++i){ var href=a[i].getAttribute('href'); if(href!==null){ var re=/^[^\?]+\?[^&]+=[^&]*&?/g; if(!re.test(href)){ var re2=/#/g; var s=href.search(re2); if(s!=-1){ var re=/^\/wiki\//g; if(re.test(href)){ var href2=href.substring(6,s) href2=decodeURI(href2); href2=href2.replace(/[_\s]+/g," "); for(var s=0;s<titles.length;s++){ var strona=titles[s]; if(href2==strona){ var href3=href.replace(/^[^#]*/g,""); var a_toc=a[i]; a_toc.setAttribute('href',encodeURI(href3)); a_toc.setAttribute("title",""); } } } }else{ var re=/^\/wiki\//g; if(re.test(href)){ var hrefv=href.replace(re,""); var hrefs=decodeURI(hrefv); hrefs=hrefs.replace(/[_\s]+/g," "); for(var s=0;s<titles.length;s++){ var strona=titles[s]; if(hrefs==strona){ var hrefs2=hrefv.replace(/^[^\/]*\//g,""); var a_toc=a[i]; a_toc.setAttribute('href','#'+hrefs2); a_toc.setAttribute("title",""); } } } } } } } } } var tab_toc=new Array("toc","toc_spis"); for(var d=0;d<tab_toc.length;++d){ var toc=document.getElementsByClassName(tab_toc[d]); if((toc!==null)&&(toc.length>0)){ for(var q in elements){ var num=new Array(); var v=0; for(var e=0;e<tabs.length;++e){ if(tabs[e]==title){ v+=1; if(parseInt(q)+1==v){ num.push(parseInt(e)+1); break; } } } var headline=elements[q].getElementsByClassName("mw-headline"); if((headline!==null)&&(headline.length>0)){ var ulozenie=0; var ostanie=0; var len=headline.length; var naglowek=""; var liczba_ulozenia_w_menu_spisu_tresci=1; var h_number=1; for (var k=0;k<len;++k){ var element2=headline[k]; var nag=element2.innerHTML; var nag2=element2.getAttribute('id'); var h=element2.parentNode.tagName; var h_numer=h.replace(/^[^\d]+/g,""); h_numer=parseInt(h_numer) if((ulozenie==0)||(ulozenie>=h_numer)){ ulozenie=h_numer-1; }else { if(ostatnie+1<h_numer-ulozenie){ ulozenie=h_numer-ostatnie-1; } } ostatnie=h_numer-ulozenie; h_numer=h_numer-ulozenie; if(k==0){ num.push(1); var nag="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext\">"+nag+"</span>"; naglowek+="<ul><li><a href=\"#"+nag2+"\">"+nag+"</a>"; }else{ if(h_numer==liczba_ulozenia_w_menu_spisu_tresci){ num[num.length-1]+=1; var nag="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext\">"+nag+"</span>"; naglowek+="</li><li><a href=\"#"+nag2+"\">"+nag+"</a>"; }else{ if(h_numer>liczba_ulozenia_w_menu_spisu_tresci){ num.push(1); var nag="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext\">"+nag+"</span>"; naglowek+="<ul><li><a href=\"#"+nag2+"\">"+nag+"</a>"; liczba_ulozenia_w_menu_spisu_tresci=h_numer; }else{ if(h_numer<liczba_ulozenia_w_menu_spisu_tresci){ num.splice(num.length-liczba_ulozenia_w_menu_spisu_tresci+h_numer,liczba_ulozenia_w_menu_spisu_tresci-h_numer); num[num.length-1]+=1; var nag="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext\">"+nag+"</span>"; naglowek+=('</li></ul>'.repeat(liczba_ulozenia_w_menu_spisu_tresci-h_numer))+"</li><li><a href=\"#"+nag2+"\">"+nag+"</a>"; liczba_ulozenia_w_menu_spisu_tresci=h_numer; } } } } } if(naglowek!=""){ naglowek+=('</li></ul>'.repeat(liczba_ulozenia_w_menu_spisu_tresci)); for(var b=0;b<toc.length;++b){ var a2=toc[b].getElementsByTagName('a'); if((a2!=null)&&(a2.length>0)){ for(var y=0;y<a2.length;++y){ var parent=a2[y].parentNode; var href=a2[y].getAttribute('href'); href=href.replace(/^#/g,""); var title2=title.replace(/^[^\/]+\//g,""); if(href==title2.replace(/[_ ]+/g,"_")+((q>0)?("_"+(parseInt(q)+1)):"")){ var div=document.createElement('div'); div.innerHTML=naglowek; var links=a2[y].getElementsByClassName('toctext'); if((links!=null)&&(links.length>0)){ var link=links[0].innerHTML; if(link==title2){ parent.appendChild(div.getElementsByTagName('ul')[0]); } } } } } } } } } } } for(var d=0;d<tab_toc.length;++d){ var toc_pos=document.getElementsByClassName(tab_toc[d]); if((toc_pos!==null)&&(toc_pos.length>0)){ for(var w=0;w<toc_pos.length;++w){ var li=toc_pos[w].getElementsByTagName('li'); var poziom; var section=1; for(var z=0;z<li.length;++z){ var parent=li[z].parentNode.parentNode; if(parent!==null){ var klasa=parent.getAttribute('class'); if(klasa!==null){ var poziom=klasa.match(/toclevel-\d+/g); if(poziom!==null){ poziom=parseInt(poziom.toString().match(/\d+$/).toString())+1; }else{ poziom=1; } }else{poziom=1;} }else{poziom=1;} var klasa=li[z].getAttribute('class'); if(klasa!==null){ var czy_section=klasa.match(/tocsection-\d+/); if(czy_section!==null){ klasa=klasa.replace(/tocsection-\d+/g,"tocsection-"+section); li[z].setAttribute('class',klasa); }else{ li[z].classList.add("tocsection-"+section); } var czy_level=klasa.match(/toclevel-\d+/); if(czy_level!==null){ klasa=li[z].getAttribute('class'); klasa=klasa.replace(/toclevel-\d+/g,"toclevel-"+poziom); li[z].setAttribute('class',klasa); }else{ li[z].classList.add("toclevel-"+poziom); } }else{ li[z].setAttribute('class',"toclevel-"+poziom+" tocsection-"+section) } section=section+1; } } } } var headline=document.getElementsByClassName('mw-headline'); if((headline)&&(headline.length>0)){ for(var i=0;i<headline.length;++i){ var c=1; var el=headline[i]; var id0=el.innerHTML; id0=id0.replace(/[_\s]+/g,"_"); id0=id0.replace(/<[^<>]+>/g,""); for(var j=0;j<i;++j){ var el1=headline[j]; var id1=el1.innerHTML; id1=id1.replace(/[_\s]+/g,"_"); id1=id1.replace(/<[^<>]+>/g,""); if(id0==id1){ ++c; } } if(c==1){ el.setAttribute('id',id0); }else{ el.setAttribute('id',id0+"_"+c); } } } var tab_toc=new Array("toc","toc_spis"); for(d=0;d<tab_toc.length;++d){ var toc_pos=document.getElementsByClassName(tab_toc[d]); if((toc_pos!==null)&&(toc_pos.length>0)){ for(var w=0;w<toc_pos.length;++w){ var toc=toc_pos[w]; var a=toc.getElementsByTagName('a'); if((a)&&(a.length>0)){ for(var p=0;p<a.length;++p){ var strona=a[p].getElementsByClassName('toctext')[0].innerHTML.replace(/[_\s]+/g,"_"); strona=strona.replace(/<[^<>]+>/g,""); var c=1; for(var v=0;v<p;++v){ var strona2; strona2=a[v].getElementsByClassName('toctext')[0].innerHTML.replace(/[_\s]+/g,"_"); strona2=strona2.replace(/<[^<>]+>/g,""); if(strona==strona2){ ++c; } } strona=strona.replace(/<[^<>]+>/g,""); if(c==1){ a[p].setAttribute('href',"#"+strona); }else{ a[p].setAttribute('href',"#"+strona+"_"+c); } } } } } } } function StronaSubst(data){ var wikikod=data.parse.text['*']; var elem=document.createElement('div'); elem.innerHTML=wikikod; var klasa_mw_parser_out=elem.getElementsByClassName('mw-parser-output'); var wikikod_wyodrepniony=(((klasa_mw_parser_out)&&(klasa_mw_parser_out.length==1))?(klasa_mw_parser_out[0].innerHTML):wikikod); var czy_wikikod=wikikod_wyodrepniony.match(/^\s*$/g); if(czy_wikikod){return;} var strona_subst="strona_subst"; var tagclass=document.getElementsByClassName(strona_subst); if(tagclass==null){return null;} var liczba_elementow=tagclass.length; if(liczba_elementow==0){return null;} var titles=new Array(); var tabstrona=new Array(); var tabs=new Array(); for (var i=0;i<liczba_elementow;++i){ var element=tagclass[i]; if(element.tagName!="DIV"){return null;} var strona=element.innerHTML; var re = /^[_ ]*$/g; var dopasowanie = re.test(strona); if(dopasowanie){return null;}; strona=strona.replace(/^[_ ]*/g,""); strona=strona.replace(/[_ ]*$/g,""); strona=strona.replace(/[_ ]+/g," "); tabs[i]=strona; var czy=false; for(var d in titles){ if(titles[d]==strona){ czy=true; break; } } if(!czy){ titles[titles.length]=strona; } if(tabstrona[strona]==null){ tabstrona[strona]=new Array(); } var tab=tabstrona[strona]; var tablen=tab.length; tabstrona[strona][tablen]=element; } for ( var p in titles ) { var strona=titles[p]; var api=new mw.Api; api.get({ action: 'parse', format: 'json', prop: 'text', title: strona, text: '{{:'+strona+'}}', disabletoc: true, disablelimitreport: true, contentmodel: 'wikitext' }).done(function(data){ WikikodTitle(data,tabs,titles,tabstrona); }); } } var strona = mw.config.get('wgPageName'); var api=new mw.Api; api.get({ action: 'parse', format: 'json', prop: 'text', title: strona, text: '{{#invoke:StronicowyParser|CzyStronaSubst}}', disabletoc: true, disablelimitreport: true, contentmodel: 'wikitext' }).done(function(data){ StronaSubst(data) }); } $(WyswietlStronyKsiazki); </syntaxhighlight> Ten program {{Code|.js}} znajduje się na stronie: {{LinkUżytkownik2|Persino/common.js}}. Jak wstawisz ten kod do strony {{LinkKomunikat2|Common.js}}, to powinno wtedy zadziałać ładowanie modułów książki, za pomocą JavaScript, na stronie {{LinkUżytkownik2|Persino/Wersja do druku}}. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 09:09, 13 lis 2021 (CET) == Gadżet StronaSubst - dodawanie do listy gadżetów == Mamy sobie kod JavaScript {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} i opis gadżetu {{LinkUżytkownik2|Persino/Gadget-StronaSubst}}, czy mógłbyś przenieść na strony w przestrzeni nazw {{Np|MediaWiki|link=tak}}, i wywołaniu gadżetu w takiej formie jak w {{LinkUżytkownik2|Persino/Gadgets-definition}} przenieść na stronę {{LinkKomunikat2|Gadgets-definition}}. Wtedy strona {{LinkUżytkownik2|Persino/Wersja do druku}} powinna działać! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 14:14, 27 lis 2021 (CET) === Zamienianie kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}} === {{Ping|Wargo}}Chodzi tutaj, że jak będzie link do artykułu w nagłówku, to, żeby nie pojawiało się pole '''[ artykuł | edytuj ]''' zamiast '''[ edytuj ]''' - aktualnie w {{LinkKomunikat2|Gadget-StronaSubst.js}} pole '''[ artykuł | edytuj ]''' pojawia się zawsze zamiast '''[ edytuj ]''', wtedy gdy ma zawartość '''strona_subst''' jest nie pusta, to algorytm jest zakańczany. A jak jest nazwa strony w zawartości div-a '''strona_subst''', a nie link w nagłówku, to wtedy ma się prawo pojawić '''[ artykuł | edytuj ]''' zamiast '''[ edytuj ]'''. Czy mógłbyś wersję {{LinkKomunikat2|Gadget-StronaSubst.js}} zamienić na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}. Z góry dziękuję za rozpatrzenie mojej prośby! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 10:13, 30 lis 2021 (CET) ---- {{Ping|Wargo}} Jeszcze, czy mógłbyś zamienić tekst w {{LinkKomunikat2|Gadget-StronaSubst}} z: {{Pre|(bez sekcji "Spis treści" i "Licencja")}} na {{Pre|(bez sekcji "Spis treści", "Bibliografia" i "Licencja")}} [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 19:18, 1 gru 2021 (CET) === Ostatnia poprawka kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}=== {{Ping|Wargo}}Chodzi tutaj, że algorytm zawiesza się na artykule {{LinkGłówna|Mechanika kwantowa/Mechanika kwantowa}}, to co poprawiłem już tak przestaje być, błąd znikł! Czy mógłbyś dokonać zamianę kodu? Proszę o pilną reakcję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 18:30, 3 gru 2021 (CET) === Miejmy nadzieję, że to jest ostatnia poprawka kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}=== {{Ping|Wargo}}Chodzi tutaj, że algorytm ma błędy JavaScript na stronie, przy danej książce: {{LinkGłówna|Szachy}}, czyli przy artykule: {{LinkGłówna|Szachy/Szachy}} - błąd tylko widać, gdy chcemy zbadać element, moja poprawka usuwa ten błąd! Czy mógłbyś dokonać zamianę kodu? Proszę o pilną reakcję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 15:50, 4 gru 2021 (CET) === Następna poprawka kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}} === {{Ping|Wargo}}Chodzi tutaj, że algorytm nie wyświetla w TOC (wbudowany spis treści) podrozdziałów dla artykułu {{LinkGłówna|Matematyka dla liceum/Matematyka dla liceum}}, moja poprawka usuwa ten błąd. Skrypt porządkuje artykuły według nagłówków na stronie tego artykułu w TOC, a zestaw artykułów, w danek sekcji, wyświetla, również w TOC, je przydzielone do niej. Czy mógłbyś dokonać zamianę kodu? Proszę o pilną reakcję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 14:51, 7 gru 2021 (CET) === Poważne poprawki w {{LinkKomunikat2|Gadget-StronaSubst.js}} na podstawie {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} oraz dodanie i zmiana pewnych gadżetów === {{Ping|Wargo}} Następne poprawki dotyczące wpisu w {{LinkKomunikat2|Gadget-StronaSubst.js}}, co do zauważonych drobnych błędów, czyli mógłbyś dokonać zamiany kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}. Z góry dziękuję. Poza tym wszystko działa, od razu dziękuję! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 19:32, 8 gru 2021 (CET) ---- {{Ping|Wargo}} Jeszcze, czy mógłbyś zamienić tekst w {{LinkKomunikat2|Gadget-StronaSubst}} z: {{Pre|(bez sekcji "Spis treści", "Bibliografia" i "Licencja")}} na {{Pre|(bez sekcji: "Spis treści", "Bibliografia", "Zobacz też", "Inne", "Licencja" i tym podobne)}} Dziękuję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 05:43, 9 gru 2021 (CET) ---- {{Ping|Wargo}} Czy mógłbyś uzupełnić {{LinkKomunikat2|Gadgets-definition}}, według {{LinkUżytkownik2|Persino/Gadgets-definition}} - szczególnie trzeba naprawić odwołanie do gadżetu StronaSubst, i dodać gadżety: {{LinkUżytkownik2|Persino/Gadget-gConfig.js}} (jego opis jest w {{LinkUżytkownik2|Persino/Gadget-gConfig}}), przenosząc go do {{LinkKomunikat2|Gadget-gConfig.js}} (jego opis do {{LinkKomunikat2|Gadget-gConfig}}), a także drugi gadżet dotyczący szablonu {{s|Cytuj}} przenieś z {{LinkUżytkownik2|Persino/Gadget-citation-access-info.js}} (jego opis to {{LinkUżytkownik2|Persino/Gadget-citation-access-info}}) do {{LinkKomunikat2|Gadget-citation-access-info.js}} (a jego opis do {{LinkKomunikat2|Gadget-citation-access-info}}). Gadżet '''gConfig''' potrzebny mi jest do gadżetu {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}}, którego zawartość należy przenieść do {{LinkKomunikat2|Gadget-StronaSubst.js}}, a gadżet {{LinkUżytkownik2|Persino/Gadget-citation-access-info.js}}, potrzebny mi jest do szablonu {{s|Cytuj}} do dymku do pełnej wersji tego szablonu, który należy przenieść do {{LinkKomunikat2|Gadget-citation-access-info.js}}. Proszę o pilną reakcję! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 15:04, 11 gru 2021 (CET) ---- Również proszę o zastąpienie strony komunikatu {{LinkKomunikat2|Gadget-map-toggler.js}} stroną {{LinkUżytkownik2|Persino/Gadget-map-toggler.js}}. Z góry dziękuję! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 18:38, 11 gru 2021 (CET) == Zamiana wartości linkowej i szablonowej == {{Ping|Wargo}}Czy mógłbyś zamienić na stronie: {{LinkUżytkownik2|Rychozol/common.js}}, z wartości: {{Nowiki|[[GNU Free Documentation License|GFDL]]}}, na: {{Nowiki|[[Wikibooks:GNU Free Documentation License|GFDL]]}}, a także na tej samej stronie wartość: {{s|clear}}, na {{s|BrClear}}, ponieważ ze względu na zmianę nazw stron. Z góry dziękuję! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 09:35, 13 gru 2021 (CET) <del>== Dalsze zmiany na stronach gadżetów (pilne) == {{Ping|Wargo}}Czy mógłbyś zainstalować gadżet "Gadget-gConfig", tak jak na stronie {{LinkUżytkownik2|Persino/Gadgets-definition}} (pierwsza linijka) w {{LinkKomunikat2|Gadgets-definition}}, a co do tego, jego kod {{LinkUżytkownik2|Persino/Gadget-gConfig.js}} zainstalować w miejscu {{LinkKomunikat2|Gadget-gConfig.js}} (jego opis jest w {{LinkUżytkownik2|Persino/Gadget-gConfig}}), przenosząc go do {{LinkKomunikat2|Gadget-gConfig.js}} (jego opis do {{LinkKomunikat2|Gadget-gConfig}}). A później zaaktualizuj gadżet {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}, a także zainstalować w miejscu {{LinkKomunikat2|Gadget-Funkcje.js}} gadżet {{LinkUżytkownik2|Persino/Gadget-Funkcje.js}}, a również zaktualizować wpis dla gadżetu StronaSubst tak jak w {{LinkUżytkownik2|Persino/Gadgets-definition}}. A później sprawdzić, czy wszystko działa. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 13:19, 4 lut 2022 (CET)</del> == Przepełnienie scrollbarów, poszczególnych elementów strony, a ustawienia różnych klas, jeżeli takowe istnieją == {{Ping|Wargo}}Czy mógłbyś uwzględnić na stronie {{LinkKomunikat2|Common.js}} część mojej strony, która jest po sekwencji /**/, będąca na stronie {{LinkUżytkownik2|Persino/common.js}}. Ten skrypt sprawdza, czy nastąpiło przepełnienie elementów strony dokumentu HTML Wikibooks, a jeżeli nastąpiło, to następuje ustawienie tam odpowiednich klas, a jeżeli ono znikło, to usunięcie tych klas. Ten skrypt jest mi potrzebny do szablonu {{s|StronaStart}} i jego pokrewnych oraz do mojego ustawienia skórki vector-2022, która jest w mojej przestrzeni użytkownika. Dziękuję za spełnienie mojej prośby. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 19:23, 27 maj 2022 (CEST) == Aktualizacja przepełnienia scrollbarów i implementacja sticky == {{Ping|Wargo}} Czy mógłbyś uwzględnić na stronie {{LinkKomunikat2|Common.js}} część mojej strony, która jest po sekwencji /**/, będąca na stronie {{LinkUżytkownik2|Persino/common.js}}. W przypadku pierwszego algorytmu, dodałem tam klasy {{Code|mw-overflow-x}} i {{Code|mw-overflow-y}}, które ten algorytm rozpoznaje, i dla nich liczy, czy nastąpiło to właśnie przepełnienie. A wcześniej liczyło dla wszystkich znaczników na stronie, co spowalniało całą stronę. Tam, gdzie, ważne jest liczenie przepełnienie wstawiłem {{Code|mw-overflow-x}}, czy {{Code|mw-overflow-y}}, czyli algorytm ten tam powinien działać, co można sprawdzić na stronie głównej tego projektu ({{NAZWASERWISU|link=tak}}). Drugi algorytm jest rozszerzenie właściwości {{Code|position:sticky}}, który on nie działa, gdy choćby jeden z rodziców jest z nie {{Code|overflow:visible}}, ale z {{Code|overflow}}, a ja zrobiłem, że jednak zaczeło działać, a ja tak to zrobiłem: {{Code|position:sticky}} zastąpiłem {{Code|position:absolute}}, w tym znaczników ustawiam {{Code|mw-sticky-y}} (przesuw w pionie) lub {{Code|mw-sticky-x}} (przesuw w poziomie), wtedy ten algorytm JavaScript działa tak, że pudełko przesuwa się od pewnej granicy do pewnej, ale nigdy nie wychodzi poza te granice, czyli działa podobnie jak {{Code|position:sticky}}. Dziękuję za spełnienie mojej prośby. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 12:41, 9 lip 2022 (CEST) ==Aktualizacja skryptów na {{LinkKomunikat2|common.js}} z {{LinkUżytkownik2|Persino/common.js}}== {{Ping|Wargo}} Czy mógłbyś zaktualizować kod na stronie {{LinkKomunikat2|common.js}} ze strony {{LinkUżytkownik2|Persino/common.js}} pod znakiem {{Code|/**/}}. Zdefiniowałem przestrzeń nazw {{Code|Common}} definicją: {{Pre|var Common{{=}}new Array();}} Prawie wszystkie funkcje ze strony {{LinkKomunikat2|common.js}} przeniosłem do tej przestrzeni na stronie {{LinkUżytkownik2|Persino/common.js}} (tutaj wszystkie funkcje są w przestrzeni {{Code|Common}}). Rozwinąłem funkcję {{Code|Common.ScrollBarOverflow}}, {{Code|Common.StickyXY}} i {{Code|Common.OptimalXY}}. Napisałem od nowa funkcje: {{Code|Common.RamkiTableIDiv}} i {{Code|Common.ZdarzeniaDodatkoweFunkcyjneXY}} oraz funkcję do obsługi szablonu {{s|StronaStart}} i jego pokrewnych książkowych z definiowałem w postaci: {{Code|Common.StronaStart}}. Co oznaczają te funkcje: * {{Code|Common.ScrollBarOverflow}} - do generowania pewnych klas, które służą do obsługi pudełka z paskami przewijania, * {{Code|Common.StickyXY}} - aktualizacja funkcji {{Code|position:sticky}}, tam gdzie go nie można go użyć, do używamy tej funkcji, * {{Code|Common.OptimalXY}} - do obsługi boksów na stronach z użytymi szablonami stronicowymi książkowymi otwierającymi i zamykającymi, * {{Code|Common.RamkiTableIDiv}} - dodaje dalsze funkcje przy przyciskach tabel i ramek, nawigacyjnych, * {{Code|Common.ZdarzeniaDodatkoweFunkcyjneXY}} - dodaje zdarzenia do obsługi funkcji: {{Code|Common.StickyXY}} i {{Code|Common.OptimalXY}}, * {{Code|Common.StronaStart}} - służy do obsługi spisu treści i boksów szablonu {{s|StronaStart}}. Na stronach podręcznikowych boksy i spisy treści są responsywne według moich ustawień, a dla wszystkich użytkowników będą responsywne po zaktualizowaniu strony {{LinkKomunikat2|common.js}} przy pomocy {{LinkUżytkownik2|Persino/common.js}}. ---- Proszę o pilną reakcję i zrealizowanie mojej prośby. Z góry dziękuję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 15:55, 3 sie 2022 (CEST) :Czy coś jest do usunięcia z obecnego common.js? Tj. czy coś stamtąd mam tym zastąpić? [[Wikipedysta:Wargo|Wargo]] ([[Dyskusja wikipedysty:Wargo|dyskusja]]) 20:55, 7 sie 2022 (CEST) ::{{Ping|Wargo}}Właśnie masz zastąpić nową wersją z pod /**/ z {{LinkUżytkownik2|Persino/common.js}} zastępując całą zawartość strony w: {{LinkKomunikat2|common.js}}. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 21:04, 7 sie 2022 (CEST) ksbsmv1x8cy5qdufqtrwq2za3ne5qyt 437170 437169 2022-08-07T19:23:24Z Persino 2851 /* Aktualizacja skryptów na {{LinkKomunikat2|common.js}} z {{LinkUżytkownik2|Persino/common.js}} */ wikitext text/x-wiki <noinclude>__LINKNOWEJSEKCJI__ [[Kategoria:Księga próśb i zadań]]</noinclude> {{fmbox|tekst=UWAGA: Nowe zgłoszenia o innym temacie niż to co dotyczy [[Wikibooks:Prośby do administratorów interfejsu/Zgłoszenia]] lub łamiące zasady [[Wikibooks:Wikietykieta|Wikietykiety]] mogą być bezwarunkowo wycofywane z tej strony}} <!-- Nowe zgłoszenia wstawiaj poniżej tej linii. Powyżej tej linii nic nie usuwaj. Nie usuwaj tej linii --> == Usunięcie wymuszenia białego tła w tabelach. == Zwracam się z prośbą o usunięcie [[MediaWiki:Common.css]] fragmentu <syntaxhighlight lang="css"> } + table.wikitable td, + table.prettytable td { + background: #f9f9f9; </syntaxhighlight> Fragment ten wymusza białe tło w tabelach, co uniemożliwia zastosowanie kolorowych komórek. Takowe bardzo by się przydały np. w opracowywanym przeze [[Zbiór zadań maturalnych/Biologia|Zbiorze zadań maturalnych z Biologii]] jak np. tu: [[:Kategoria:Zbiór zadań maturalnych/podstawa programowa 2017/Biologia/Zakres rozszerzony/Treści nauczania/II/3/1]]. Póki co posiłkuję się obramowaniem, chciałbym jednak docelowo zastosować kolorowanie komórek. Z góry dziękuję za rozpatrzenie mojej prośby. [[Wikipedysta:Superjurek|Superjurek]] ([[Dyskusja wikipedysty:Superjurek|dyskusja]]) 22:42, 16 kwi 2021 (CEST) ----- {{Ping|Superjurek}}Spróbuj użyć zapisu, np.: <syntaxhighlight lang="css"> background-color: blue !important; color:white !important; </syntaxhighlight> zamiast: <syntaxhighlight lang="css"> background-color: blue; color:white; </syntaxhighlight> to powinno naprawić cały problem! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 21:05, 27 maj 2022 (CEST) ==Wstawianie kodu do {{LinkKomunikat2|Common.js}}== Czy mógłbyś wsadzić do tej strony {{Code|.js}} kod: <syntaxhighlight lang="JavaScript"> function WyswietlStronyKsiazki(){ function WikikodTitle(data,tabs,titles,tabstrona){ var title=data.parse.title; var wikikod=data.parse.text['*']; var elements=tabstrona[title]; for(var q in elements){ elements[q].innerHTML=wikikod; var a=elements[q].getElementsByTagName('a'); if((a!==null)&&(a.length>0)){ var lena=a.length; for(var i=0;i<lena;++i){ var href=a[i].getAttribute('href'); if(href!==null){ var re=/^[^\?]+\?[^&]+=[^&]*&?/g; if(!re.test(href)){ var re2=/#/g; var s=href.search(re2); if(s!=-1){ var re=/^\/wiki\//g; if(re.test(href)){ var href2=href.substring(6,s) href2=decodeURI(href2); href2=href2.replace(/[_\s]+/g," "); for(var s=0;s<titles.length;s++){ var strona=titles[s]; if(href2==strona){ var href3=href.replace(/^[^#]*/g,""); var a_toc=a[i]; a_toc.setAttribute('href',encodeURI(href3)); a_toc.setAttribute("title",""); } } } }else{ var re=/^\/wiki\//g; if(re.test(href)){ var hrefv=href.replace(re,""); var hrefs=decodeURI(hrefv); hrefs=hrefs.replace(/[_\s]+/g," "); for(var s=0;s<titles.length;s++){ var strona=titles[s]; if(hrefs==strona){ var hrefs2=hrefv.replace(/^[^\/]*\//g,""); var a_toc=a[i]; a_toc.setAttribute('href','#'+hrefs2); a_toc.setAttribute("title",""); } } } } } } } } } var tab_toc=new Array("toc","toc_spis"); for(var d=0;d<tab_toc.length;++d){ var toc=document.getElementsByClassName(tab_toc[d]); if((toc!==null)&&(toc.length>0)){ for(var q in elements){ var num=new Array(); var v=0; for(var e=0;e<tabs.length;++e){ if(tabs[e]==title){ v+=1; if(parseInt(q)+1==v){ num.push(parseInt(e)+1); break; } } } var headline=elements[q].getElementsByClassName("mw-headline"); if((headline!==null)&&(headline.length>0)){ var ulozenie=0; var ostanie=0; var len=headline.length; var naglowek=""; var liczba_ulozenia_w_menu_spisu_tresci=1; var h_number=1; for (var k=0;k<len;++k){ var element2=headline[k]; var nag=element2.innerHTML; var nag2=element2.getAttribute('id'); var h=element2.parentNode.tagName; var h_numer=h.replace(/^[^\d]+/g,""); h_numer=parseInt(h_numer) if((ulozenie==0)||(ulozenie>=h_numer)){ ulozenie=h_numer-1; }else { if(ostatnie+1<h_numer-ulozenie){ ulozenie=h_numer-ostatnie-1; } } ostatnie=h_numer-ulozenie; h_numer=h_numer-ulozenie; if(k==0){ num.push(1); var nag="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext\">"+nag+"</span>"; naglowek+="<ul><li><a href=\"#"+nag2+"\">"+nag+"</a>"; }else{ if(h_numer==liczba_ulozenia_w_menu_spisu_tresci){ num[num.length-1]+=1; var nag="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext\">"+nag+"</span>"; naglowek+="</li><li><a href=\"#"+nag2+"\">"+nag+"</a>"; }else{ if(h_numer>liczba_ulozenia_w_menu_spisu_tresci){ num.push(1); var nag="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext\">"+nag+"</span>"; naglowek+="<ul><li><a href=\"#"+nag2+"\">"+nag+"</a>"; liczba_ulozenia_w_menu_spisu_tresci=h_numer; }else{ if(h_numer<liczba_ulozenia_w_menu_spisu_tresci){ num.splice(num.length-liczba_ulozenia_w_menu_spisu_tresci+h_numer,liczba_ulozenia_w_menu_spisu_tresci-h_numer); num[num.length-1]+=1; var nag="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext\">"+nag+"</span>"; naglowek+=('</li></ul>'.repeat(liczba_ulozenia_w_menu_spisu_tresci-h_numer))+"</li><li><a href=\"#"+nag2+"\">"+nag+"</a>"; liczba_ulozenia_w_menu_spisu_tresci=h_numer; } } } } } if(naglowek!=""){ naglowek+=('</li></ul>'.repeat(liczba_ulozenia_w_menu_spisu_tresci)); for(var b=0;b<toc.length;++b){ var a2=toc[b].getElementsByTagName('a'); if((a2!=null)&&(a2.length>0)){ for(var y=0;y<a2.length;++y){ var parent=a2[y].parentNode; var href=a2[y].getAttribute('href'); href=href.replace(/^#/g,""); var title2=title.replace(/^[^\/]+\//g,""); if(href==title2.replace(/[_ ]+/g,"_")+((q>0)?("_"+(parseInt(q)+1)):"")){ var div=document.createElement('div'); div.innerHTML=naglowek; var links=a2[y].getElementsByClassName('toctext'); if((links!=null)&&(links.length>0)){ var link=links[0].innerHTML; if(link==title2){ parent.appendChild(div.getElementsByTagName('ul')[0]); } } } } } } } } } } } for(var d=0;d<tab_toc.length;++d){ var toc_pos=document.getElementsByClassName(tab_toc[d]); if((toc_pos!==null)&&(toc_pos.length>0)){ for(var w=0;w<toc_pos.length;++w){ var li=toc_pos[w].getElementsByTagName('li'); var poziom; var section=1; for(var z=0;z<li.length;++z){ var parent=li[z].parentNode.parentNode; if(parent!==null){ var klasa=parent.getAttribute('class'); if(klasa!==null){ var poziom=klasa.match(/toclevel-\d+/g); if(poziom!==null){ poziom=parseInt(poziom.toString().match(/\d+$/).toString())+1; }else{ poziom=1; } }else{poziom=1;} }else{poziom=1;} var klasa=li[z].getAttribute('class'); if(klasa!==null){ var czy_section=klasa.match(/tocsection-\d+/); if(czy_section!==null){ klasa=klasa.replace(/tocsection-\d+/g,"tocsection-"+section); li[z].setAttribute('class',klasa); }else{ li[z].classList.add("tocsection-"+section); } var czy_level=klasa.match(/toclevel-\d+/); if(czy_level!==null){ klasa=li[z].getAttribute('class'); klasa=klasa.replace(/toclevel-\d+/g,"toclevel-"+poziom); li[z].setAttribute('class',klasa); }else{ li[z].classList.add("toclevel-"+poziom); } }else{ li[z].setAttribute('class',"toclevel-"+poziom+" tocsection-"+section) } section=section+1; } } } } var headline=document.getElementsByClassName('mw-headline'); if((headline)&&(headline.length>0)){ for(var i=0;i<headline.length;++i){ var c=1; var el=headline[i]; var id0=el.innerHTML; id0=id0.replace(/[_\s]+/g,"_"); id0=id0.replace(/<[^<>]+>/g,""); for(var j=0;j<i;++j){ var el1=headline[j]; var id1=el1.innerHTML; id1=id1.replace(/[_\s]+/g,"_"); id1=id1.replace(/<[^<>]+>/g,""); if(id0==id1){ ++c; } } if(c==1){ el.setAttribute('id',id0); }else{ el.setAttribute('id',id0+"_"+c); } } } var tab_toc=new Array("toc","toc_spis"); for(d=0;d<tab_toc.length;++d){ var toc_pos=document.getElementsByClassName(tab_toc[d]); if((toc_pos!==null)&&(toc_pos.length>0)){ for(var w=0;w<toc_pos.length;++w){ var toc=toc_pos[w]; var a=toc.getElementsByTagName('a'); if((a)&&(a.length>0)){ for(var p=0;p<a.length;++p){ var strona=a[p].getElementsByClassName('toctext')[0].innerHTML.replace(/[_\s]+/g,"_"); strona=strona.replace(/<[^<>]+>/g,""); var c=1; for(var v=0;v<p;++v){ var strona2; strona2=a[v].getElementsByClassName('toctext')[0].innerHTML.replace(/[_\s]+/g,"_"); strona2=strona2.replace(/<[^<>]+>/g,""); if(strona==strona2){ ++c; } } strona=strona.replace(/<[^<>]+>/g,""); if(c==1){ a[p].setAttribute('href',"#"+strona); }else{ a[p].setAttribute('href',"#"+strona+"_"+c); } } } } } } } function StronaSubst(data){ var wikikod=data.parse.text['*']; var elem=document.createElement('div'); elem.innerHTML=wikikod; var klasa_mw_parser_out=elem.getElementsByClassName('mw-parser-output'); var wikikod_wyodrepniony=(((klasa_mw_parser_out)&&(klasa_mw_parser_out.length==1))?(klasa_mw_parser_out[0].innerHTML):wikikod); var czy_wikikod=wikikod_wyodrepniony.match(/^\s*$/g); if(czy_wikikod){return;} var strona_subst="strona_subst"; var tagclass=document.getElementsByClassName(strona_subst); if(tagclass==null){return null;} var liczba_elementow=tagclass.length; if(liczba_elementow==0){return null;} var titles=new Array(); var tabstrona=new Array(); var tabs=new Array(); for (var i=0;i<liczba_elementow;++i){ var element=tagclass[i]; if(element.tagName!="DIV"){return null;} var strona=element.innerHTML; var re = /^[_ ]*$/g; var dopasowanie = re.test(strona); if(dopasowanie){return null;}; strona=strona.replace(/^[_ ]*/g,""); strona=strona.replace(/[_ ]*$/g,""); strona=strona.replace(/[_ ]+/g," "); tabs[i]=strona; var czy=false; for(var d in titles){ if(titles[d]==strona){ czy=true; break; } } if(!czy){ titles[titles.length]=strona; } if(tabstrona[strona]==null){ tabstrona[strona]=new Array(); } var tab=tabstrona[strona]; var tablen=tab.length; tabstrona[strona][tablen]=element; } for ( var p in titles ) { var strona=titles[p]; var api=new mw.Api; api.get({ action: 'parse', format: 'json', prop: 'text', title: strona, text: '{{:'+strona+'}}', disabletoc: true, disablelimitreport: true, contentmodel: 'wikitext' }).done(function(data){ WikikodTitle(data,tabs,titles,tabstrona); }); } } var strona = mw.config.get('wgPageName'); var api=new mw.Api; api.get({ action: 'parse', format: 'json', prop: 'text', title: strona, text: '{{#invoke:StronicowyParser|CzyStronaSubst}}', disabletoc: true, disablelimitreport: true, contentmodel: 'wikitext' }).done(function(data){ StronaSubst(data) }); } $(WyswietlStronyKsiazki); </syntaxhighlight> Ten program {{Code|.js}} znajduje się na stronie: {{LinkUżytkownik2|Persino/common.js}}. Jak wstawisz ten kod do strony {{LinkKomunikat2|Common.js}}, to powinno wtedy zadziałać ładowanie modułów książki, za pomocą JavaScript, na stronie {{LinkUżytkownik2|Persino/Wersja do druku}}. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 09:09, 13 lis 2021 (CET) == Gadżet StronaSubst - dodawanie do listy gadżetów == Mamy sobie kod JavaScript {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} i opis gadżetu {{LinkUżytkownik2|Persino/Gadget-StronaSubst}}, czy mógłbyś przenieść na strony w przestrzeni nazw {{Np|MediaWiki|link=tak}}, i wywołaniu gadżetu w takiej formie jak w {{LinkUżytkownik2|Persino/Gadgets-definition}} przenieść na stronę {{LinkKomunikat2|Gadgets-definition}}. Wtedy strona {{LinkUżytkownik2|Persino/Wersja do druku}} powinna działać! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 14:14, 27 lis 2021 (CET) === Zamienianie kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}} === {{Ping|Wargo}}Chodzi tutaj, że jak będzie link do artykułu w nagłówku, to, żeby nie pojawiało się pole '''[ artykuł | edytuj ]''' zamiast '''[ edytuj ]''' - aktualnie w {{LinkKomunikat2|Gadget-StronaSubst.js}} pole '''[ artykuł | edytuj ]''' pojawia się zawsze zamiast '''[ edytuj ]''', wtedy gdy ma zawartość '''strona_subst''' jest nie pusta, to algorytm jest zakańczany. A jak jest nazwa strony w zawartości div-a '''strona_subst''', a nie link w nagłówku, to wtedy ma się prawo pojawić '''[ artykuł | edytuj ]''' zamiast '''[ edytuj ]'''. Czy mógłbyś wersję {{LinkKomunikat2|Gadget-StronaSubst.js}} zamienić na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}. Z góry dziękuję za rozpatrzenie mojej prośby! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 10:13, 30 lis 2021 (CET) ---- {{Ping|Wargo}} Jeszcze, czy mógłbyś zamienić tekst w {{LinkKomunikat2|Gadget-StronaSubst}} z: {{Pre|(bez sekcji "Spis treści" i "Licencja")}} na {{Pre|(bez sekcji "Spis treści", "Bibliografia" i "Licencja")}} [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 19:18, 1 gru 2021 (CET) === Ostatnia poprawka kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}=== {{Ping|Wargo}}Chodzi tutaj, że algorytm zawiesza się na artykule {{LinkGłówna|Mechanika kwantowa/Mechanika kwantowa}}, to co poprawiłem już tak przestaje być, błąd znikł! Czy mógłbyś dokonać zamianę kodu? Proszę o pilną reakcję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 18:30, 3 gru 2021 (CET) === Miejmy nadzieję, że to jest ostatnia poprawka kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}=== {{Ping|Wargo}}Chodzi tutaj, że algorytm ma błędy JavaScript na stronie, przy danej książce: {{LinkGłówna|Szachy}}, czyli przy artykule: {{LinkGłówna|Szachy/Szachy}} - błąd tylko widać, gdy chcemy zbadać element, moja poprawka usuwa ten błąd! Czy mógłbyś dokonać zamianę kodu? Proszę o pilną reakcję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 15:50, 4 gru 2021 (CET) === Następna poprawka kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}} === {{Ping|Wargo}}Chodzi tutaj, że algorytm nie wyświetla w TOC (wbudowany spis treści) podrozdziałów dla artykułu {{LinkGłówna|Matematyka dla liceum/Matematyka dla liceum}}, moja poprawka usuwa ten błąd. Skrypt porządkuje artykuły według nagłówków na stronie tego artykułu w TOC, a zestaw artykułów, w danek sekcji, wyświetla, również w TOC, je przydzielone do niej. Czy mógłbyś dokonać zamianę kodu? Proszę o pilną reakcję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 14:51, 7 gru 2021 (CET) === Poważne poprawki w {{LinkKomunikat2|Gadget-StronaSubst.js}} na podstawie {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} oraz dodanie i zmiana pewnych gadżetów === {{Ping|Wargo}} Następne poprawki dotyczące wpisu w {{LinkKomunikat2|Gadget-StronaSubst.js}}, co do zauważonych drobnych błędów, czyli mógłbyś dokonać zamiany kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}. Z góry dziękuję. Poza tym wszystko działa, od razu dziękuję! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 19:32, 8 gru 2021 (CET) ---- {{Ping|Wargo}} Jeszcze, czy mógłbyś zamienić tekst w {{LinkKomunikat2|Gadget-StronaSubst}} z: {{Pre|(bez sekcji "Spis treści", "Bibliografia" i "Licencja")}} na {{Pre|(bez sekcji: "Spis treści", "Bibliografia", "Zobacz też", "Inne", "Licencja" i tym podobne)}} Dziękuję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 05:43, 9 gru 2021 (CET) ---- {{Ping|Wargo}} Czy mógłbyś uzupełnić {{LinkKomunikat2|Gadgets-definition}}, według {{LinkUżytkownik2|Persino/Gadgets-definition}} - szczególnie trzeba naprawić odwołanie do gadżetu StronaSubst, i dodać gadżety: {{LinkUżytkownik2|Persino/Gadget-gConfig.js}} (jego opis jest w {{LinkUżytkownik2|Persino/Gadget-gConfig}}), przenosząc go do {{LinkKomunikat2|Gadget-gConfig.js}} (jego opis do {{LinkKomunikat2|Gadget-gConfig}}), a także drugi gadżet dotyczący szablonu {{s|Cytuj}} przenieś z {{LinkUżytkownik2|Persino/Gadget-citation-access-info.js}} (jego opis to {{LinkUżytkownik2|Persino/Gadget-citation-access-info}}) do {{LinkKomunikat2|Gadget-citation-access-info.js}} (a jego opis do {{LinkKomunikat2|Gadget-citation-access-info}}). Gadżet '''gConfig''' potrzebny mi jest do gadżetu {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}}, którego zawartość należy przenieść do {{LinkKomunikat2|Gadget-StronaSubst.js}}, a gadżet {{LinkUżytkownik2|Persino/Gadget-citation-access-info.js}}, potrzebny mi jest do szablonu {{s|Cytuj}} do dymku do pełnej wersji tego szablonu, który należy przenieść do {{LinkKomunikat2|Gadget-citation-access-info.js}}. Proszę o pilną reakcję! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 15:04, 11 gru 2021 (CET) ---- Również proszę o zastąpienie strony komunikatu {{LinkKomunikat2|Gadget-map-toggler.js}} stroną {{LinkUżytkownik2|Persino/Gadget-map-toggler.js}}. Z góry dziękuję! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 18:38, 11 gru 2021 (CET) == Zamiana wartości linkowej i szablonowej == {{Ping|Wargo}}Czy mógłbyś zamienić na stronie: {{LinkUżytkownik2|Rychozol/common.js}}, z wartości: {{Nowiki|[[GNU Free Documentation License|GFDL]]}}, na: {{Nowiki|[[Wikibooks:GNU Free Documentation License|GFDL]]}}, a także na tej samej stronie wartość: {{s|clear}}, na {{s|BrClear}}, ponieważ ze względu na zmianę nazw stron. Z góry dziękuję! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 09:35, 13 gru 2021 (CET) <del>== Dalsze zmiany na stronach gadżetów (pilne) == {{Ping|Wargo}}Czy mógłbyś zainstalować gadżet "Gadget-gConfig", tak jak na stronie {{LinkUżytkownik2|Persino/Gadgets-definition}} (pierwsza linijka) w {{LinkKomunikat2|Gadgets-definition}}, a co do tego, jego kod {{LinkUżytkownik2|Persino/Gadget-gConfig.js}} zainstalować w miejscu {{LinkKomunikat2|Gadget-gConfig.js}} (jego opis jest w {{LinkUżytkownik2|Persino/Gadget-gConfig}}), przenosząc go do {{LinkKomunikat2|Gadget-gConfig.js}} (jego opis do {{LinkKomunikat2|Gadget-gConfig}}). A później zaaktualizuj gadżet {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}, a także zainstalować w miejscu {{LinkKomunikat2|Gadget-Funkcje.js}} gadżet {{LinkUżytkownik2|Persino/Gadget-Funkcje.js}}, a również zaktualizować wpis dla gadżetu StronaSubst tak jak w {{LinkUżytkownik2|Persino/Gadgets-definition}}. A później sprawdzić, czy wszystko działa. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 13:19, 4 lut 2022 (CET)</del> == Przepełnienie scrollbarów, poszczególnych elementów strony, a ustawienia różnych klas, jeżeli takowe istnieją == {{Ping|Wargo}}Czy mógłbyś uwzględnić na stronie {{LinkKomunikat2|Common.js}} część mojej strony, która jest po sekwencji /**/, będąca na stronie {{LinkUżytkownik2|Persino/common.js}}. Ten skrypt sprawdza, czy nastąpiło przepełnienie elementów strony dokumentu HTML Wikibooks, a jeżeli nastąpiło, to następuje ustawienie tam odpowiednich klas, a jeżeli ono znikło, to usunięcie tych klas. Ten skrypt jest mi potrzebny do szablonu {{s|StronaStart}} i jego pokrewnych oraz do mojego ustawienia skórki vector-2022, która jest w mojej przestrzeni użytkownika. Dziękuję za spełnienie mojej prośby. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 19:23, 27 maj 2022 (CEST) == Aktualizacja przepełnienia scrollbarów i implementacja sticky == {{Ping|Wargo}} Czy mógłbyś uwzględnić na stronie {{LinkKomunikat2|Common.js}} część mojej strony, która jest po sekwencji /**/, będąca na stronie {{LinkUżytkownik2|Persino/common.js}}. W przypadku pierwszego algorytmu, dodałem tam klasy {{Code|mw-overflow-x}} i {{Code|mw-overflow-y}}, które ten algorytm rozpoznaje, i dla nich liczy, czy nastąpiło to właśnie przepełnienie. A wcześniej liczyło dla wszystkich znaczników na stronie, co spowalniało całą stronę. Tam, gdzie, ważne jest liczenie przepełnienie wstawiłem {{Code|mw-overflow-x}}, czy {{Code|mw-overflow-y}}, czyli algorytm ten tam powinien działać, co można sprawdzić na stronie głównej tego projektu ({{NAZWASERWISU|link=tak}}). Drugi algorytm jest rozszerzenie właściwości {{Code|position:sticky}}, który on nie działa, gdy choćby jeden z rodziców jest z nie {{Code|overflow:visible}}, ale z {{Code|overflow}}, a ja zrobiłem, że jednak zaczeło działać, a ja tak to zrobiłem: {{Code|position:sticky}} zastąpiłem {{Code|position:absolute}}, w tym znaczników ustawiam {{Code|mw-sticky-y}} (przesuw w pionie) lub {{Code|mw-sticky-x}} (przesuw w poziomie), wtedy ten algorytm JavaScript działa tak, że pudełko przesuwa się od pewnej granicy do pewnej, ale nigdy nie wychodzi poza te granice, czyli działa podobnie jak {{Code|position:sticky}}. Dziękuję za spełnienie mojej prośby. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 12:41, 9 lip 2022 (CEST) ==Aktualizacja skryptów na {{LinkKomunikat2|common.js}} z {{LinkUżytkownik2|Persino/common.js}}== {{Ping|Wargo}} Czy mógłbyś zaktualizować kod na stronie {{LinkKomunikat2|common.js}} ze strony {{LinkUżytkownik2|Persino/common.js}} pod znakiem {{Code|/**/}}. Zdefiniowałem przestrzeń nazw {{Code|Common}} definicją: {{Pre|var Common{{=}}new Array();}} Prawie wszystkie funkcje ze strony {{LinkKomunikat2|common.js}} przeniosłem do tej przestrzeni na stronie {{LinkUżytkownik2|Persino/common.js}} (tutaj wszystkie funkcje są w przestrzeni {{Code|Common}}). Rozwinąłem funkcję {{Code|Common.ScrollBarOverflow}}, {{Code|Common.StickyXY}} i {{Code|Common.OptimalXY}}. Napisałem od nowa funkcje: {{Code|Common.RamkiTableIDiv}} i {{Code|Common.ZdarzeniaDodatkoweFunkcyjneXY}} oraz funkcję do obsługi szablonu {{s|StronaStart}} i jego pokrewnych książkowych z definiowałem w postaci: {{Code|Common.StronaStart}}. Co oznaczają te funkcje: * {{Code|Common.ScrollBarOverflow}} - do generowania pewnych klas, które służą do obsługi pudełka z paskami przewijania, * {{Code|Common.StickyXY}} - aktualizacja funkcji {{Code|position:sticky}}, tam gdzie go nie można go użyć, do używamy tej funkcji, * {{Code|Common.OptimalXY}} - do obsługi boksów na stronach z użytymi szablonami stronicowymi książkowymi otwierającymi i zamykającymi, * {{Code|Common.RamkiTableIDiv}} - dodaje dalsze funkcje przy przyciskach tabel i ramek, nawigacyjnych, * {{Code|Common.ZdarzeniaDodatkoweFunkcyjneXY}} - dodaje zdarzenia do obsługi funkcji: {{Code|Common.StickyXY}} i {{Code|Common.OptimalXY}}, * {{Code|Common.StronaStart}} - służy do obsługi spisu treści i boksów szablonu {{s|StronaStart}}. Na stronach podręcznikowych boksy i spisy treści są responsywne według moich ustawień, a dla wszystkich użytkowników będą responsywne po zaktualizowaniu strony {{LinkKomunikat2|common.js}} przy pomocy {{LinkUżytkownik2|Persino/common.js}}. ---- Proszę o pilną reakcję i zrealizowanie mojej prośby. Z góry dziękuję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 15:55, 3 sie 2022 (CEST) :Czy coś jest do usunięcia z obecnego common.js? Tj. czy coś stamtąd mam tym zastąpić? [[Wikipedysta:Wargo|Wargo]] ([[Dyskusja wikipedysty:Wargo|dyskusja]]) 20:55, 7 sie 2022 (CEST) ::{{Ping|Wargo}}Właśnie masz zastąpić nową wersją z pod /**/ z: {{LinkUżytkownik2|Persino/common.js}}, zastępując całą zawartość strony w: {{LinkKomunikat2|common.js}}. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 21:04, 7 sie 2022 (CEST) o2mma0c47mktekdhbe7akpetjqe1lbu 437172 437170 2022-08-07T19:39:18Z Persino 2851 /* Aktualizacja skryptów na {{LinkKomunikat2|common.js}} z {{LinkUżytkownik2|Persino/common.js}} */ wikitext text/x-wiki <noinclude>__LINKNOWEJSEKCJI__ [[Kategoria:Księga próśb i zadań]]</noinclude> {{fmbox|tekst=UWAGA: Nowe zgłoszenia o innym temacie niż to co dotyczy [[Wikibooks:Prośby do administratorów interfejsu/Zgłoszenia]] lub łamiące zasady [[Wikibooks:Wikietykieta|Wikietykiety]] mogą być bezwarunkowo wycofywane z tej strony}} <!-- Nowe zgłoszenia wstawiaj poniżej tej linii. Powyżej tej linii nic nie usuwaj. Nie usuwaj tej linii --> == Usunięcie wymuszenia białego tła w tabelach. == Zwracam się z prośbą o usunięcie [[MediaWiki:Common.css]] fragmentu <syntaxhighlight lang="css"> } + table.wikitable td, + table.prettytable td { + background: #f9f9f9; </syntaxhighlight> Fragment ten wymusza białe tło w tabelach, co uniemożliwia zastosowanie kolorowych komórek. Takowe bardzo by się przydały np. w opracowywanym przeze [[Zbiór zadań maturalnych/Biologia|Zbiorze zadań maturalnych z Biologii]] jak np. tu: [[:Kategoria:Zbiór zadań maturalnych/podstawa programowa 2017/Biologia/Zakres rozszerzony/Treści nauczania/II/3/1]]. Póki co posiłkuję się obramowaniem, chciałbym jednak docelowo zastosować kolorowanie komórek. Z góry dziękuję za rozpatrzenie mojej prośby. [[Wikipedysta:Superjurek|Superjurek]] ([[Dyskusja wikipedysty:Superjurek|dyskusja]]) 22:42, 16 kwi 2021 (CEST) ----- {{Ping|Superjurek}}Spróbuj użyć zapisu, np.: <syntaxhighlight lang="css"> background-color: blue !important; color:white !important; </syntaxhighlight> zamiast: <syntaxhighlight lang="css"> background-color: blue; color:white; </syntaxhighlight> to powinno naprawić cały problem! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 21:05, 27 maj 2022 (CEST) ==Wstawianie kodu do {{LinkKomunikat2|Common.js}}== Czy mógłbyś wsadzić do tej strony {{Code|.js}} kod: <syntaxhighlight lang="JavaScript"> function WyswietlStronyKsiazki(){ function WikikodTitle(data,tabs,titles,tabstrona){ var title=data.parse.title; var wikikod=data.parse.text['*']; var elements=tabstrona[title]; for(var q in elements){ elements[q].innerHTML=wikikod; var a=elements[q].getElementsByTagName('a'); if((a!==null)&&(a.length>0)){ var lena=a.length; for(var i=0;i<lena;++i){ var href=a[i].getAttribute('href'); if(href!==null){ var re=/^[^\?]+\?[^&]+=[^&]*&?/g; if(!re.test(href)){ var re2=/#/g; var s=href.search(re2); if(s!=-1){ var re=/^\/wiki\//g; if(re.test(href)){ var href2=href.substring(6,s) href2=decodeURI(href2); href2=href2.replace(/[_\s]+/g," "); for(var s=0;s<titles.length;s++){ var strona=titles[s]; if(href2==strona){ var href3=href.replace(/^[^#]*/g,""); var a_toc=a[i]; a_toc.setAttribute('href',encodeURI(href3)); a_toc.setAttribute("title",""); } } } }else{ var re=/^\/wiki\//g; if(re.test(href)){ var hrefv=href.replace(re,""); var hrefs=decodeURI(hrefv); hrefs=hrefs.replace(/[_\s]+/g," "); for(var s=0;s<titles.length;s++){ var strona=titles[s]; if(hrefs==strona){ var hrefs2=hrefv.replace(/^[^\/]*\//g,""); var a_toc=a[i]; a_toc.setAttribute('href','#'+hrefs2); a_toc.setAttribute("title",""); } } } } } } } } } var tab_toc=new Array("toc","toc_spis"); for(var d=0;d<tab_toc.length;++d){ var toc=document.getElementsByClassName(tab_toc[d]); if((toc!==null)&&(toc.length>0)){ for(var q in elements){ var num=new Array(); var v=0; for(var e=0;e<tabs.length;++e){ if(tabs[e]==title){ v+=1; if(parseInt(q)+1==v){ num.push(parseInt(e)+1); break; } } } var headline=elements[q].getElementsByClassName("mw-headline"); if((headline!==null)&&(headline.length>0)){ var ulozenie=0; var ostanie=0; var len=headline.length; var naglowek=""; var liczba_ulozenia_w_menu_spisu_tresci=1; var h_number=1; for (var k=0;k<len;++k){ var element2=headline[k]; var nag=element2.innerHTML; var nag2=element2.getAttribute('id'); var h=element2.parentNode.tagName; var h_numer=h.replace(/^[^\d]+/g,""); h_numer=parseInt(h_numer) if((ulozenie==0)||(ulozenie>=h_numer)){ ulozenie=h_numer-1; }else { if(ostatnie+1<h_numer-ulozenie){ ulozenie=h_numer-ostatnie-1; } } ostatnie=h_numer-ulozenie; h_numer=h_numer-ulozenie; if(k==0){ num.push(1); var nag="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext\">"+nag+"</span>"; naglowek+="<ul><li><a href=\"#"+nag2+"\">"+nag+"</a>"; }else{ if(h_numer==liczba_ulozenia_w_menu_spisu_tresci){ num[num.length-1]+=1; var nag="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext\">"+nag+"</span>"; naglowek+="</li><li><a href=\"#"+nag2+"\">"+nag+"</a>"; }else{ if(h_numer>liczba_ulozenia_w_menu_spisu_tresci){ num.push(1); var nag="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext\">"+nag+"</span>"; naglowek+="<ul><li><a href=\"#"+nag2+"\">"+nag+"</a>"; liczba_ulozenia_w_menu_spisu_tresci=h_numer; }else{ if(h_numer<liczba_ulozenia_w_menu_spisu_tresci){ num.splice(num.length-liczba_ulozenia_w_menu_spisu_tresci+h_numer,liczba_ulozenia_w_menu_spisu_tresci-h_numer); num[num.length-1]+=1; var nag="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext\">"+nag+"</span>"; naglowek+=('</li></ul>'.repeat(liczba_ulozenia_w_menu_spisu_tresci-h_numer))+"</li><li><a href=\"#"+nag2+"\">"+nag+"</a>"; liczba_ulozenia_w_menu_spisu_tresci=h_numer; } } } } } if(naglowek!=""){ naglowek+=('</li></ul>'.repeat(liczba_ulozenia_w_menu_spisu_tresci)); for(var b=0;b<toc.length;++b){ var a2=toc[b].getElementsByTagName('a'); if((a2!=null)&&(a2.length>0)){ for(var y=0;y<a2.length;++y){ var parent=a2[y].parentNode; var href=a2[y].getAttribute('href'); href=href.replace(/^#/g,""); var title2=title.replace(/^[^\/]+\//g,""); if(href==title2.replace(/[_ ]+/g,"_")+((q>0)?("_"+(parseInt(q)+1)):"")){ var div=document.createElement('div'); div.innerHTML=naglowek; var links=a2[y].getElementsByClassName('toctext'); if((links!=null)&&(links.length>0)){ var link=links[0].innerHTML; if(link==title2){ parent.appendChild(div.getElementsByTagName('ul')[0]); } } } } } } } } } } } for(var d=0;d<tab_toc.length;++d){ var toc_pos=document.getElementsByClassName(tab_toc[d]); if((toc_pos!==null)&&(toc_pos.length>0)){ for(var w=0;w<toc_pos.length;++w){ var li=toc_pos[w].getElementsByTagName('li'); var poziom; var section=1; for(var z=0;z<li.length;++z){ var parent=li[z].parentNode.parentNode; if(parent!==null){ var klasa=parent.getAttribute('class'); if(klasa!==null){ var poziom=klasa.match(/toclevel-\d+/g); if(poziom!==null){ poziom=parseInt(poziom.toString().match(/\d+$/).toString())+1; }else{ poziom=1; } }else{poziom=1;} }else{poziom=1;} var klasa=li[z].getAttribute('class'); if(klasa!==null){ var czy_section=klasa.match(/tocsection-\d+/); if(czy_section!==null){ klasa=klasa.replace(/tocsection-\d+/g,"tocsection-"+section); li[z].setAttribute('class',klasa); }else{ li[z].classList.add("tocsection-"+section); } var czy_level=klasa.match(/toclevel-\d+/); if(czy_level!==null){ klasa=li[z].getAttribute('class'); klasa=klasa.replace(/toclevel-\d+/g,"toclevel-"+poziom); li[z].setAttribute('class',klasa); }else{ li[z].classList.add("toclevel-"+poziom); } }else{ li[z].setAttribute('class',"toclevel-"+poziom+" tocsection-"+section) } section=section+1; } } } } var headline=document.getElementsByClassName('mw-headline'); if((headline)&&(headline.length>0)){ for(var i=0;i<headline.length;++i){ var c=1; var el=headline[i]; var id0=el.innerHTML; id0=id0.replace(/[_\s]+/g,"_"); id0=id0.replace(/<[^<>]+>/g,""); for(var j=0;j<i;++j){ var el1=headline[j]; var id1=el1.innerHTML; id1=id1.replace(/[_\s]+/g,"_"); id1=id1.replace(/<[^<>]+>/g,""); if(id0==id1){ ++c; } } if(c==1){ el.setAttribute('id',id0); }else{ el.setAttribute('id',id0+"_"+c); } } } var tab_toc=new Array("toc","toc_spis"); for(d=0;d<tab_toc.length;++d){ var toc_pos=document.getElementsByClassName(tab_toc[d]); if((toc_pos!==null)&&(toc_pos.length>0)){ for(var w=0;w<toc_pos.length;++w){ var toc=toc_pos[w]; var a=toc.getElementsByTagName('a'); if((a)&&(a.length>0)){ for(var p=0;p<a.length;++p){ var strona=a[p].getElementsByClassName('toctext')[0].innerHTML.replace(/[_\s]+/g,"_"); strona=strona.replace(/<[^<>]+>/g,""); var c=1; for(var v=0;v<p;++v){ var strona2; strona2=a[v].getElementsByClassName('toctext')[0].innerHTML.replace(/[_\s]+/g,"_"); strona2=strona2.replace(/<[^<>]+>/g,""); if(strona==strona2){ ++c; } } strona=strona.replace(/<[^<>]+>/g,""); if(c==1){ a[p].setAttribute('href',"#"+strona); }else{ a[p].setAttribute('href',"#"+strona+"_"+c); } } } } } } } function StronaSubst(data){ var wikikod=data.parse.text['*']; var elem=document.createElement('div'); elem.innerHTML=wikikod; var klasa_mw_parser_out=elem.getElementsByClassName('mw-parser-output'); var wikikod_wyodrepniony=(((klasa_mw_parser_out)&&(klasa_mw_parser_out.length==1))?(klasa_mw_parser_out[0].innerHTML):wikikod); var czy_wikikod=wikikod_wyodrepniony.match(/^\s*$/g); if(czy_wikikod){return;} var strona_subst="strona_subst"; var tagclass=document.getElementsByClassName(strona_subst); if(tagclass==null){return null;} var liczba_elementow=tagclass.length; if(liczba_elementow==0){return null;} var titles=new Array(); var tabstrona=new Array(); var tabs=new Array(); for (var i=0;i<liczba_elementow;++i){ var element=tagclass[i]; if(element.tagName!="DIV"){return null;} var strona=element.innerHTML; var re = /^[_ ]*$/g; var dopasowanie = re.test(strona); if(dopasowanie){return null;}; strona=strona.replace(/^[_ ]*/g,""); strona=strona.replace(/[_ ]*$/g,""); strona=strona.replace(/[_ ]+/g," "); tabs[i]=strona; var czy=false; for(var d in titles){ if(titles[d]==strona){ czy=true; break; } } if(!czy){ titles[titles.length]=strona; } if(tabstrona[strona]==null){ tabstrona[strona]=new Array(); } var tab=tabstrona[strona]; var tablen=tab.length; tabstrona[strona][tablen]=element; } for ( var p in titles ) { var strona=titles[p]; var api=new mw.Api; api.get({ action: 'parse', format: 'json', prop: 'text', title: strona, text: '{{:'+strona+'}}', disabletoc: true, disablelimitreport: true, contentmodel: 'wikitext' }).done(function(data){ WikikodTitle(data,tabs,titles,tabstrona); }); } } var strona = mw.config.get('wgPageName'); var api=new mw.Api; api.get({ action: 'parse', format: 'json', prop: 'text', title: strona, text: '{{#invoke:StronicowyParser|CzyStronaSubst}}', disabletoc: true, disablelimitreport: true, contentmodel: 'wikitext' }).done(function(data){ StronaSubst(data) }); } $(WyswietlStronyKsiazki); </syntaxhighlight> Ten program {{Code|.js}} znajduje się na stronie: {{LinkUżytkownik2|Persino/common.js}}. Jak wstawisz ten kod do strony {{LinkKomunikat2|Common.js}}, to powinno wtedy zadziałać ładowanie modułów książki, za pomocą JavaScript, na stronie {{LinkUżytkownik2|Persino/Wersja do druku}}. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 09:09, 13 lis 2021 (CET) == Gadżet StronaSubst - dodawanie do listy gadżetów == Mamy sobie kod JavaScript {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} i opis gadżetu {{LinkUżytkownik2|Persino/Gadget-StronaSubst}}, czy mógłbyś przenieść na strony w przestrzeni nazw {{Np|MediaWiki|link=tak}}, i wywołaniu gadżetu w takiej formie jak w {{LinkUżytkownik2|Persino/Gadgets-definition}} przenieść na stronę {{LinkKomunikat2|Gadgets-definition}}. Wtedy strona {{LinkUżytkownik2|Persino/Wersja do druku}} powinna działać! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 14:14, 27 lis 2021 (CET) === Zamienianie kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}} === {{Ping|Wargo}}Chodzi tutaj, że jak będzie link do artykułu w nagłówku, to, żeby nie pojawiało się pole '''[ artykuł | edytuj ]''' zamiast '''[ edytuj ]''' - aktualnie w {{LinkKomunikat2|Gadget-StronaSubst.js}} pole '''[ artykuł | edytuj ]''' pojawia się zawsze zamiast '''[ edytuj ]''', wtedy gdy ma zawartość '''strona_subst''' jest nie pusta, to algorytm jest zakańczany. A jak jest nazwa strony w zawartości div-a '''strona_subst''', a nie link w nagłówku, to wtedy ma się prawo pojawić '''[ artykuł | edytuj ]''' zamiast '''[ edytuj ]'''. Czy mógłbyś wersję {{LinkKomunikat2|Gadget-StronaSubst.js}} zamienić na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}. Z góry dziękuję za rozpatrzenie mojej prośby! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 10:13, 30 lis 2021 (CET) ---- {{Ping|Wargo}} Jeszcze, czy mógłbyś zamienić tekst w {{LinkKomunikat2|Gadget-StronaSubst}} z: {{Pre|(bez sekcji "Spis treści" i "Licencja")}} na {{Pre|(bez sekcji "Spis treści", "Bibliografia" i "Licencja")}} [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 19:18, 1 gru 2021 (CET) === Ostatnia poprawka kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}=== {{Ping|Wargo}}Chodzi tutaj, że algorytm zawiesza się na artykule {{LinkGłówna|Mechanika kwantowa/Mechanika kwantowa}}, to co poprawiłem już tak przestaje być, błąd znikł! Czy mógłbyś dokonać zamianę kodu? Proszę o pilną reakcję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 18:30, 3 gru 2021 (CET) === Miejmy nadzieję, że to jest ostatnia poprawka kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}=== {{Ping|Wargo}}Chodzi tutaj, że algorytm ma błędy JavaScript na stronie, przy danej książce: {{LinkGłówna|Szachy}}, czyli przy artykule: {{LinkGłówna|Szachy/Szachy}} - błąd tylko widać, gdy chcemy zbadać element, moja poprawka usuwa ten błąd! Czy mógłbyś dokonać zamianę kodu? Proszę o pilną reakcję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 15:50, 4 gru 2021 (CET) === Następna poprawka kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}} === {{Ping|Wargo}}Chodzi tutaj, że algorytm nie wyświetla w TOC (wbudowany spis treści) podrozdziałów dla artykułu {{LinkGłówna|Matematyka dla liceum/Matematyka dla liceum}}, moja poprawka usuwa ten błąd. Skrypt porządkuje artykuły według nagłówków na stronie tego artykułu w TOC, a zestaw artykułów, w danek sekcji, wyświetla, również w TOC, je przydzielone do niej. Czy mógłbyś dokonać zamianę kodu? Proszę o pilną reakcję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 14:51, 7 gru 2021 (CET) === Poważne poprawki w {{LinkKomunikat2|Gadget-StronaSubst.js}} na podstawie {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} oraz dodanie i zmiana pewnych gadżetów === {{Ping|Wargo}} Następne poprawki dotyczące wpisu w {{LinkKomunikat2|Gadget-StronaSubst.js}}, co do zauważonych drobnych błędów, czyli mógłbyś dokonać zamiany kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}. Z góry dziękuję. Poza tym wszystko działa, od razu dziękuję! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 19:32, 8 gru 2021 (CET) ---- {{Ping|Wargo}} Jeszcze, czy mógłbyś zamienić tekst w {{LinkKomunikat2|Gadget-StronaSubst}} z: {{Pre|(bez sekcji "Spis treści", "Bibliografia" i "Licencja")}} na {{Pre|(bez sekcji: "Spis treści", "Bibliografia", "Zobacz też", "Inne", "Licencja" i tym podobne)}} Dziękuję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 05:43, 9 gru 2021 (CET) ---- {{Ping|Wargo}} Czy mógłbyś uzupełnić {{LinkKomunikat2|Gadgets-definition}}, według {{LinkUżytkownik2|Persino/Gadgets-definition}} - szczególnie trzeba naprawić odwołanie do gadżetu StronaSubst, i dodać gadżety: {{LinkUżytkownik2|Persino/Gadget-gConfig.js}} (jego opis jest w {{LinkUżytkownik2|Persino/Gadget-gConfig}}), przenosząc go do {{LinkKomunikat2|Gadget-gConfig.js}} (jego opis do {{LinkKomunikat2|Gadget-gConfig}}), a także drugi gadżet dotyczący szablonu {{s|Cytuj}} przenieś z {{LinkUżytkownik2|Persino/Gadget-citation-access-info.js}} (jego opis to {{LinkUżytkownik2|Persino/Gadget-citation-access-info}}) do {{LinkKomunikat2|Gadget-citation-access-info.js}} (a jego opis do {{LinkKomunikat2|Gadget-citation-access-info}}). Gadżet '''gConfig''' potrzebny mi jest do gadżetu {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}}, którego zawartość należy przenieść do {{LinkKomunikat2|Gadget-StronaSubst.js}}, a gadżet {{LinkUżytkownik2|Persino/Gadget-citation-access-info.js}}, potrzebny mi jest do szablonu {{s|Cytuj}} do dymku do pełnej wersji tego szablonu, który należy przenieść do {{LinkKomunikat2|Gadget-citation-access-info.js}}. Proszę o pilną reakcję! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 15:04, 11 gru 2021 (CET) ---- Również proszę o zastąpienie strony komunikatu {{LinkKomunikat2|Gadget-map-toggler.js}} stroną {{LinkUżytkownik2|Persino/Gadget-map-toggler.js}}. Z góry dziękuję! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 18:38, 11 gru 2021 (CET) == Zamiana wartości linkowej i szablonowej == {{Ping|Wargo}}Czy mógłbyś zamienić na stronie: {{LinkUżytkownik2|Rychozol/common.js}}, z wartości: {{Nowiki|[[GNU Free Documentation License|GFDL]]}}, na: {{Nowiki|[[Wikibooks:GNU Free Documentation License|GFDL]]}}, a także na tej samej stronie wartość: {{s|clear}}, na {{s|BrClear}}, ponieważ ze względu na zmianę nazw stron. Z góry dziękuję! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 09:35, 13 gru 2021 (CET) <del>== Dalsze zmiany na stronach gadżetów (pilne) == {{Ping|Wargo}}Czy mógłbyś zainstalować gadżet "Gadget-gConfig", tak jak na stronie {{LinkUżytkownik2|Persino/Gadgets-definition}} (pierwsza linijka) w {{LinkKomunikat2|Gadgets-definition}}, a co do tego, jego kod {{LinkUżytkownik2|Persino/Gadget-gConfig.js}} zainstalować w miejscu {{LinkKomunikat2|Gadget-gConfig.js}} (jego opis jest w {{LinkUżytkownik2|Persino/Gadget-gConfig}}), przenosząc go do {{LinkKomunikat2|Gadget-gConfig.js}} (jego opis do {{LinkKomunikat2|Gadget-gConfig}}). A później zaaktualizuj gadżet {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}, a także zainstalować w miejscu {{LinkKomunikat2|Gadget-Funkcje.js}} gadżet {{LinkUżytkownik2|Persino/Gadget-Funkcje.js}}, a również zaktualizować wpis dla gadżetu StronaSubst tak jak w {{LinkUżytkownik2|Persino/Gadgets-definition}}. A później sprawdzić, czy wszystko działa. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 13:19, 4 lut 2022 (CET)</del> == Przepełnienie scrollbarów, poszczególnych elementów strony, a ustawienia różnych klas, jeżeli takowe istnieją == {{Ping|Wargo}}Czy mógłbyś uwzględnić na stronie {{LinkKomunikat2|Common.js}} część mojej strony, która jest po sekwencji /**/, będąca na stronie {{LinkUżytkownik2|Persino/common.js}}. Ten skrypt sprawdza, czy nastąpiło przepełnienie elementów strony dokumentu HTML Wikibooks, a jeżeli nastąpiło, to następuje ustawienie tam odpowiednich klas, a jeżeli ono znikło, to usunięcie tych klas. Ten skrypt jest mi potrzebny do szablonu {{s|StronaStart}} i jego pokrewnych oraz do mojego ustawienia skórki vector-2022, która jest w mojej przestrzeni użytkownika. Dziękuję za spełnienie mojej prośby. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 19:23, 27 maj 2022 (CEST) == Aktualizacja przepełnienia scrollbarów i implementacja sticky == {{Ping|Wargo}} Czy mógłbyś uwzględnić na stronie {{LinkKomunikat2|Common.js}} część mojej strony, która jest po sekwencji /**/, będąca na stronie {{LinkUżytkownik2|Persino/common.js}}. W przypadku pierwszego algorytmu, dodałem tam klasy {{Code|mw-overflow-x}} i {{Code|mw-overflow-y}}, które ten algorytm rozpoznaje, i dla nich liczy, czy nastąpiło to właśnie przepełnienie. A wcześniej liczyło dla wszystkich znaczników na stronie, co spowalniało całą stronę. Tam, gdzie, ważne jest liczenie przepełnienie wstawiłem {{Code|mw-overflow-x}}, czy {{Code|mw-overflow-y}}, czyli algorytm ten tam powinien działać, co można sprawdzić na stronie głównej tego projektu ({{NAZWASERWISU|link=tak}}). Drugi algorytm jest rozszerzenie właściwości {{Code|position:sticky}}, który on nie działa, gdy choćby jeden z rodziców jest z nie {{Code|overflow:visible}}, ale z {{Code|overflow}}, a ja zrobiłem, że jednak zaczeło działać, a ja tak to zrobiłem: {{Code|position:sticky}} zastąpiłem {{Code|position:absolute}}, w tym znaczników ustawiam {{Code|mw-sticky-y}} (przesuw w pionie) lub {{Code|mw-sticky-x}} (przesuw w poziomie), wtedy ten algorytm JavaScript działa tak, że pudełko przesuwa się od pewnej granicy do pewnej, ale nigdy nie wychodzi poza te granice, czyli działa podobnie jak {{Code|position:sticky}}. Dziękuję za spełnienie mojej prośby. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 12:41, 9 lip 2022 (CEST) ==Aktualizacja skryptów na {{LinkKomunikat2|common.js}} z {{LinkUżytkownik2|Persino/common.js}}== {{Ping|Wargo}} Czy mógłbyś zaktualizować kod na stronie {{LinkKomunikat2|common.js}} ze strony {{LinkUżytkownik2|Persino/common.js}} pod znakiem {{Code|/**/}}. Zdefiniowałem przestrzeń nazw {{Code|Common}} definicją: {{Pre|var Common{{=}}new Array();}} Prawie wszystkie funkcje ze strony {{LinkKomunikat2|common.js}} przeniosłem do tej przestrzeni na stronie {{LinkUżytkownik2|Persino/common.js}} (tutaj wszystkie funkcje są w przestrzeni {{Code|Common}}). Rozwinąłem funkcję {{Code|Common.ScrollBarOverflow}}, {{Code|Common.StickyXY}} i {{Code|Common.OptimalXY}}. Napisałem od nowa funkcje: {{Code|Common.RamkiTableIDiv}} i {{Code|Common.ZdarzeniaDodatkoweFunkcyjneXY}} oraz funkcję do obsługi szablonu {{s|StronaStart}} i jego pokrewnych książkowych z definiowałem w postaci: {{Code|Common.StronaStart}}. Co oznaczają te funkcje: * {{Code|Common.ScrollBarOverflow}} - do generowania pewnych klas, które służą do obsługi pudełka z paskami przewijania, * {{Code|Common.StickyXY}} - aktualizacja funkcji {{Code|position:sticky}}, tam gdzie go nie można go użyć, do używamy tej funkcji, * {{Code|Common.OptimalXY}} - do obsługi boksów na stronach z użytymi szablonami stronicowymi książkowymi otwierającymi i zamykającymi, * {{Code|Common.RamkiTableIDiv}} - dodaje dalsze funkcje przy przyciskach tabel i ramek, nawigacyjnych, * {{Code|Common.ZdarzeniaDodatkoweFunkcyjneXY}} - dodaje zdarzenia do obsługi funkcji: {{Code|Common.StickyXY}} i {{Code|Common.OptimalXY}}, * {{Code|Common.StronaStart}} - służy do obsługi spisu treści i boksów szablonu {{s|StronaStart}}. Na stronach podręcznikowych boksy i spisy treści są responsywne według moich ustawień, a dla wszystkich użytkowników będą responsywne po zaktualizowaniu strony {{LinkKomunikat2|common.js}} przy pomocy {{LinkUżytkownik2|Persino/common.js}}. ---- Proszę o pilną reakcję i zrealizowanie mojej prośby. Z góry dziękuję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 15:55, 3 sie 2022 (CEST) :Czy coś jest do usunięcia z obecnego common.js? Tj. czy coś stamtąd mam tym zastąpić? [[Wikipedysta:Wargo|Wargo]] ([[Dyskusja wikipedysty:Wargo|dyskusja]]) 20:55, 7 sie 2022 (CEST) ::{{Ping|Wargo}}Właśnie masz zastąpić nową wersją z pod /**/ z: {{LinkUżytkownik2|Persino/common.js}}, zastępując całą zawartość strony w: {{LinkKomunikat2|common.js}}. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 21:04, 7 sie 2022 (CEST) :::{{Ping|Wargo}} Już możesz zastępować, wszystko gotowe! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 21:39, 7 sie 2022 (CEST) fzdw4cf64bjus7umgrgp80w5laym47e 437175 437172 2022-08-08T07:52:17Z Persino 2851 /* Aktualizacja skryptów na {{LinkKomunikat2|common.js}} z {{LinkUżytkownik2|Persino/common.js}} */ wikitext text/x-wiki <noinclude>__LINKNOWEJSEKCJI__ [[Kategoria:Księga próśb i zadań]]</noinclude> {{fmbox|tekst=UWAGA: Nowe zgłoszenia o innym temacie niż to co dotyczy [[Wikibooks:Prośby do administratorów interfejsu/Zgłoszenia]] lub łamiące zasady [[Wikibooks:Wikietykieta|Wikietykiety]] mogą być bezwarunkowo wycofywane z tej strony}} <!-- Nowe zgłoszenia wstawiaj poniżej tej linii. Powyżej tej linii nic nie usuwaj. Nie usuwaj tej linii --> == Usunięcie wymuszenia białego tła w tabelach. == Zwracam się z prośbą o usunięcie [[MediaWiki:Common.css]] fragmentu <syntaxhighlight lang="css"> } + table.wikitable td, + table.prettytable td { + background: #f9f9f9; </syntaxhighlight> Fragment ten wymusza białe tło w tabelach, co uniemożliwia zastosowanie kolorowych komórek. Takowe bardzo by się przydały np. w opracowywanym przeze [[Zbiór zadań maturalnych/Biologia|Zbiorze zadań maturalnych z Biologii]] jak np. tu: [[:Kategoria:Zbiór zadań maturalnych/podstawa programowa 2017/Biologia/Zakres rozszerzony/Treści nauczania/II/3/1]]. Póki co posiłkuję się obramowaniem, chciałbym jednak docelowo zastosować kolorowanie komórek. Z góry dziękuję za rozpatrzenie mojej prośby. [[Wikipedysta:Superjurek|Superjurek]] ([[Dyskusja wikipedysty:Superjurek|dyskusja]]) 22:42, 16 kwi 2021 (CEST) ----- {{Ping|Superjurek}}Spróbuj użyć zapisu, np.: <syntaxhighlight lang="css"> background-color: blue !important; color:white !important; </syntaxhighlight> zamiast: <syntaxhighlight lang="css"> background-color: blue; color:white; </syntaxhighlight> to powinno naprawić cały problem! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 21:05, 27 maj 2022 (CEST) ==Wstawianie kodu do {{LinkKomunikat2|Common.js}}== Czy mógłbyś wsadzić do tej strony {{Code|.js}} kod: <syntaxhighlight lang="JavaScript"> function WyswietlStronyKsiazki(){ function WikikodTitle(data,tabs,titles,tabstrona){ var title=data.parse.title; var wikikod=data.parse.text['*']; var elements=tabstrona[title]; for(var q in elements){ elements[q].innerHTML=wikikod; var a=elements[q].getElementsByTagName('a'); if((a!==null)&&(a.length>0)){ var lena=a.length; for(var i=0;i<lena;++i){ var href=a[i].getAttribute('href'); if(href!==null){ var re=/^[^\?]+\?[^&]+=[^&]*&?/g; if(!re.test(href)){ var re2=/#/g; var s=href.search(re2); if(s!=-1){ var re=/^\/wiki\//g; if(re.test(href)){ var href2=href.substring(6,s) href2=decodeURI(href2); href2=href2.replace(/[_\s]+/g," "); for(var s=0;s<titles.length;s++){ var strona=titles[s]; if(href2==strona){ var href3=href.replace(/^[^#]*/g,""); var a_toc=a[i]; a_toc.setAttribute('href',encodeURI(href3)); a_toc.setAttribute("title",""); } } } }else{ var re=/^\/wiki\//g; if(re.test(href)){ var hrefv=href.replace(re,""); var hrefs=decodeURI(hrefv); hrefs=hrefs.replace(/[_\s]+/g," "); for(var s=0;s<titles.length;s++){ var strona=titles[s]; if(hrefs==strona){ var hrefs2=hrefv.replace(/^[^\/]*\//g,""); var a_toc=a[i]; a_toc.setAttribute('href','#'+hrefs2); a_toc.setAttribute("title",""); } } } } } } } } } var tab_toc=new Array("toc","toc_spis"); for(var d=0;d<tab_toc.length;++d){ var toc=document.getElementsByClassName(tab_toc[d]); if((toc!==null)&&(toc.length>0)){ for(var q in elements){ var num=new Array(); var v=0; for(var e=0;e<tabs.length;++e){ if(tabs[e]==title){ v+=1; if(parseInt(q)+1==v){ num.push(parseInt(e)+1); break; } } } var headline=elements[q].getElementsByClassName("mw-headline"); if((headline!==null)&&(headline.length>0)){ var ulozenie=0; var ostanie=0; var len=headline.length; var naglowek=""; var liczba_ulozenia_w_menu_spisu_tresci=1; var h_number=1; for (var k=0;k<len;++k){ var element2=headline[k]; var nag=element2.innerHTML; var nag2=element2.getAttribute('id'); var h=element2.parentNode.tagName; var h_numer=h.replace(/^[^\d]+/g,""); h_numer=parseInt(h_numer) if((ulozenie==0)||(ulozenie>=h_numer)){ ulozenie=h_numer-1; }else { if(ostatnie+1<h_numer-ulozenie){ ulozenie=h_numer-ostatnie-1; } } ostatnie=h_numer-ulozenie; h_numer=h_numer-ulozenie; if(k==0){ num.push(1); var nag="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext\">"+nag+"</span>"; naglowek+="<ul><li><a href=\"#"+nag2+"\">"+nag+"</a>"; }else{ if(h_numer==liczba_ulozenia_w_menu_spisu_tresci){ num[num.length-1]+=1; var nag="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext\">"+nag+"</span>"; naglowek+="</li><li><a href=\"#"+nag2+"\">"+nag+"</a>"; }else{ if(h_numer>liczba_ulozenia_w_menu_spisu_tresci){ num.push(1); var nag="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext\">"+nag+"</span>"; naglowek+="<ul><li><a href=\"#"+nag2+"\">"+nag+"</a>"; liczba_ulozenia_w_menu_spisu_tresci=h_numer; }else{ if(h_numer<liczba_ulozenia_w_menu_spisu_tresci){ num.splice(num.length-liczba_ulozenia_w_menu_spisu_tresci+h_numer,liczba_ulozenia_w_menu_spisu_tresci-h_numer); num[num.length-1]+=1; var nag="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext\">"+nag+"</span>"; naglowek+=('</li></ul>'.repeat(liczba_ulozenia_w_menu_spisu_tresci-h_numer))+"</li><li><a href=\"#"+nag2+"\">"+nag+"</a>"; liczba_ulozenia_w_menu_spisu_tresci=h_numer; } } } } } if(naglowek!=""){ naglowek+=('</li></ul>'.repeat(liczba_ulozenia_w_menu_spisu_tresci)); for(var b=0;b<toc.length;++b){ var a2=toc[b].getElementsByTagName('a'); if((a2!=null)&&(a2.length>0)){ for(var y=0;y<a2.length;++y){ var parent=a2[y].parentNode; var href=a2[y].getAttribute('href'); href=href.replace(/^#/g,""); var title2=title.replace(/^[^\/]+\//g,""); if(href==title2.replace(/[_ ]+/g,"_")+((q>0)?("_"+(parseInt(q)+1)):"")){ var div=document.createElement('div'); div.innerHTML=naglowek; var links=a2[y].getElementsByClassName('toctext'); if((links!=null)&&(links.length>0)){ var link=links[0].innerHTML; if(link==title2){ parent.appendChild(div.getElementsByTagName('ul')[0]); } } } } } } } } } } } for(var d=0;d<tab_toc.length;++d){ var toc_pos=document.getElementsByClassName(tab_toc[d]); if((toc_pos!==null)&&(toc_pos.length>0)){ for(var w=0;w<toc_pos.length;++w){ var li=toc_pos[w].getElementsByTagName('li'); var poziom; var section=1; for(var z=0;z<li.length;++z){ var parent=li[z].parentNode.parentNode; if(parent!==null){ var klasa=parent.getAttribute('class'); if(klasa!==null){ var poziom=klasa.match(/toclevel-\d+/g); if(poziom!==null){ poziom=parseInt(poziom.toString().match(/\d+$/).toString())+1; }else{ poziom=1; } }else{poziom=1;} }else{poziom=1;} var klasa=li[z].getAttribute('class'); if(klasa!==null){ var czy_section=klasa.match(/tocsection-\d+/); if(czy_section!==null){ klasa=klasa.replace(/tocsection-\d+/g,"tocsection-"+section); li[z].setAttribute('class',klasa); }else{ li[z].classList.add("tocsection-"+section); } var czy_level=klasa.match(/toclevel-\d+/); if(czy_level!==null){ klasa=li[z].getAttribute('class'); klasa=klasa.replace(/toclevel-\d+/g,"toclevel-"+poziom); li[z].setAttribute('class',klasa); }else{ li[z].classList.add("toclevel-"+poziom); } }else{ li[z].setAttribute('class',"toclevel-"+poziom+" tocsection-"+section) } section=section+1; } } } } var headline=document.getElementsByClassName('mw-headline'); if((headline)&&(headline.length>0)){ for(var i=0;i<headline.length;++i){ var c=1; var el=headline[i]; var id0=el.innerHTML; id0=id0.replace(/[_\s]+/g,"_"); id0=id0.replace(/<[^<>]+>/g,""); for(var j=0;j<i;++j){ var el1=headline[j]; var id1=el1.innerHTML; id1=id1.replace(/[_\s]+/g,"_"); id1=id1.replace(/<[^<>]+>/g,""); if(id0==id1){ ++c; } } if(c==1){ el.setAttribute('id',id0); }else{ el.setAttribute('id',id0+"_"+c); } } } var tab_toc=new Array("toc","toc_spis"); for(d=0;d<tab_toc.length;++d){ var toc_pos=document.getElementsByClassName(tab_toc[d]); if((toc_pos!==null)&&(toc_pos.length>0)){ for(var w=0;w<toc_pos.length;++w){ var toc=toc_pos[w]; var a=toc.getElementsByTagName('a'); if((a)&&(a.length>0)){ for(var p=0;p<a.length;++p){ var strona=a[p].getElementsByClassName('toctext')[0].innerHTML.replace(/[_\s]+/g,"_"); strona=strona.replace(/<[^<>]+>/g,""); var c=1; for(var v=0;v<p;++v){ var strona2; strona2=a[v].getElementsByClassName('toctext')[0].innerHTML.replace(/[_\s]+/g,"_"); strona2=strona2.replace(/<[^<>]+>/g,""); if(strona==strona2){ ++c; } } strona=strona.replace(/<[^<>]+>/g,""); if(c==1){ a[p].setAttribute('href',"#"+strona); }else{ a[p].setAttribute('href',"#"+strona+"_"+c); } } } } } } } function StronaSubst(data){ var wikikod=data.parse.text['*']; var elem=document.createElement('div'); elem.innerHTML=wikikod; var klasa_mw_parser_out=elem.getElementsByClassName('mw-parser-output'); var wikikod_wyodrepniony=(((klasa_mw_parser_out)&&(klasa_mw_parser_out.length==1))?(klasa_mw_parser_out[0].innerHTML):wikikod); var czy_wikikod=wikikod_wyodrepniony.match(/^\s*$/g); if(czy_wikikod){return;} var strona_subst="strona_subst"; var tagclass=document.getElementsByClassName(strona_subst); if(tagclass==null){return null;} var liczba_elementow=tagclass.length; if(liczba_elementow==0){return null;} var titles=new Array(); var tabstrona=new Array(); var tabs=new Array(); for (var i=0;i<liczba_elementow;++i){ var element=tagclass[i]; if(element.tagName!="DIV"){return null;} var strona=element.innerHTML; var re = /^[_ ]*$/g; var dopasowanie = re.test(strona); if(dopasowanie){return null;}; strona=strona.replace(/^[_ ]*/g,""); strona=strona.replace(/[_ ]*$/g,""); strona=strona.replace(/[_ ]+/g," "); tabs[i]=strona; var czy=false; for(var d in titles){ if(titles[d]==strona){ czy=true; break; } } if(!czy){ titles[titles.length]=strona; } if(tabstrona[strona]==null){ tabstrona[strona]=new Array(); } var tab=tabstrona[strona]; var tablen=tab.length; tabstrona[strona][tablen]=element; } for ( var p in titles ) { var strona=titles[p]; var api=new mw.Api; api.get({ action: 'parse', format: 'json', prop: 'text', title: strona, text: '{{:'+strona+'}}', disabletoc: true, disablelimitreport: true, contentmodel: 'wikitext' }).done(function(data){ WikikodTitle(data,tabs,titles,tabstrona); }); } } var strona = mw.config.get('wgPageName'); var api=new mw.Api; api.get({ action: 'parse', format: 'json', prop: 'text', title: strona, text: '{{#invoke:StronicowyParser|CzyStronaSubst}}', disabletoc: true, disablelimitreport: true, contentmodel: 'wikitext' }).done(function(data){ StronaSubst(data) }); } $(WyswietlStronyKsiazki); </syntaxhighlight> Ten program {{Code|.js}} znajduje się na stronie: {{LinkUżytkownik2|Persino/common.js}}. Jak wstawisz ten kod do strony {{LinkKomunikat2|Common.js}}, to powinno wtedy zadziałać ładowanie modułów książki, za pomocą JavaScript, na stronie {{LinkUżytkownik2|Persino/Wersja do druku}}. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 09:09, 13 lis 2021 (CET) == Gadżet StronaSubst - dodawanie do listy gadżetów == Mamy sobie kod JavaScript {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} i opis gadżetu {{LinkUżytkownik2|Persino/Gadget-StronaSubst}}, czy mógłbyś przenieść na strony w przestrzeni nazw {{Np|MediaWiki|link=tak}}, i wywołaniu gadżetu w takiej formie jak w {{LinkUżytkownik2|Persino/Gadgets-definition}} przenieść na stronę {{LinkKomunikat2|Gadgets-definition}}. Wtedy strona {{LinkUżytkownik2|Persino/Wersja do druku}} powinna działać! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 14:14, 27 lis 2021 (CET) === Zamienianie kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}} === {{Ping|Wargo}}Chodzi tutaj, że jak będzie link do artykułu w nagłówku, to, żeby nie pojawiało się pole '''[ artykuł | edytuj ]''' zamiast '''[ edytuj ]''' - aktualnie w {{LinkKomunikat2|Gadget-StronaSubst.js}} pole '''[ artykuł | edytuj ]''' pojawia się zawsze zamiast '''[ edytuj ]''', wtedy gdy ma zawartość '''strona_subst''' jest nie pusta, to algorytm jest zakańczany. A jak jest nazwa strony w zawartości div-a '''strona_subst''', a nie link w nagłówku, to wtedy ma się prawo pojawić '''[ artykuł | edytuj ]''' zamiast '''[ edytuj ]'''. Czy mógłbyś wersję {{LinkKomunikat2|Gadget-StronaSubst.js}} zamienić na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}. Z góry dziękuję za rozpatrzenie mojej prośby! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 10:13, 30 lis 2021 (CET) ---- {{Ping|Wargo}} Jeszcze, czy mógłbyś zamienić tekst w {{LinkKomunikat2|Gadget-StronaSubst}} z: {{Pre|(bez sekcji "Spis treści" i "Licencja")}} na {{Pre|(bez sekcji "Spis treści", "Bibliografia" i "Licencja")}} [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 19:18, 1 gru 2021 (CET) === Ostatnia poprawka kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}=== {{Ping|Wargo}}Chodzi tutaj, że algorytm zawiesza się na artykule {{LinkGłówna|Mechanika kwantowa/Mechanika kwantowa}}, to co poprawiłem już tak przestaje być, błąd znikł! Czy mógłbyś dokonać zamianę kodu? Proszę o pilną reakcję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 18:30, 3 gru 2021 (CET) === Miejmy nadzieję, że to jest ostatnia poprawka kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}=== {{Ping|Wargo}}Chodzi tutaj, że algorytm ma błędy JavaScript na stronie, przy danej książce: {{LinkGłówna|Szachy}}, czyli przy artykule: {{LinkGłówna|Szachy/Szachy}} - błąd tylko widać, gdy chcemy zbadać element, moja poprawka usuwa ten błąd! Czy mógłbyś dokonać zamianę kodu? Proszę o pilną reakcję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 15:50, 4 gru 2021 (CET) === Następna poprawka kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}} === {{Ping|Wargo}}Chodzi tutaj, że algorytm nie wyświetla w TOC (wbudowany spis treści) podrozdziałów dla artykułu {{LinkGłówna|Matematyka dla liceum/Matematyka dla liceum}}, moja poprawka usuwa ten błąd. Skrypt porządkuje artykuły według nagłówków na stronie tego artykułu w TOC, a zestaw artykułów, w danek sekcji, wyświetla, również w TOC, je przydzielone do niej. Czy mógłbyś dokonać zamianę kodu? Proszę o pilną reakcję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 14:51, 7 gru 2021 (CET) === Poważne poprawki w {{LinkKomunikat2|Gadget-StronaSubst.js}} na podstawie {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} oraz dodanie i zmiana pewnych gadżetów === {{Ping|Wargo}} Następne poprawki dotyczące wpisu w {{LinkKomunikat2|Gadget-StronaSubst.js}}, co do zauważonych drobnych błędów, czyli mógłbyś dokonać zamiany kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}. Z góry dziękuję. Poza tym wszystko działa, od razu dziękuję! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 19:32, 8 gru 2021 (CET) ---- {{Ping|Wargo}} Jeszcze, czy mógłbyś zamienić tekst w {{LinkKomunikat2|Gadget-StronaSubst}} z: {{Pre|(bez sekcji "Spis treści", "Bibliografia" i "Licencja")}} na {{Pre|(bez sekcji: "Spis treści", "Bibliografia", "Zobacz też", "Inne", "Licencja" i tym podobne)}} Dziękuję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 05:43, 9 gru 2021 (CET) ---- {{Ping|Wargo}} Czy mógłbyś uzupełnić {{LinkKomunikat2|Gadgets-definition}}, według {{LinkUżytkownik2|Persino/Gadgets-definition}} - szczególnie trzeba naprawić odwołanie do gadżetu StronaSubst, i dodać gadżety: {{LinkUżytkownik2|Persino/Gadget-gConfig.js}} (jego opis jest w {{LinkUżytkownik2|Persino/Gadget-gConfig}}), przenosząc go do {{LinkKomunikat2|Gadget-gConfig.js}} (jego opis do {{LinkKomunikat2|Gadget-gConfig}}), a także drugi gadżet dotyczący szablonu {{s|Cytuj}} przenieś z {{LinkUżytkownik2|Persino/Gadget-citation-access-info.js}} (jego opis to {{LinkUżytkownik2|Persino/Gadget-citation-access-info}}) do {{LinkKomunikat2|Gadget-citation-access-info.js}} (a jego opis do {{LinkKomunikat2|Gadget-citation-access-info}}). Gadżet '''gConfig''' potrzebny mi jest do gadżetu {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}}, którego zawartość należy przenieść do {{LinkKomunikat2|Gadget-StronaSubst.js}}, a gadżet {{LinkUżytkownik2|Persino/Gadget-citation-access-info.js}}, potrzebny mi jest do szablonu {{s|Cytuj}} do dymku do pełnej wersji tego szablonu, który należy przenieść do {{LinkKomunikat2|Gadget-citation-access-info.js}}. Proszę o pilną reakcję! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 15:04, 11 gru 2021 (CET) ---- Również proszę o zastąpienie strony komunikatu {{LinkKomunikat2|Gadget-map-toggler.js}} stroną {{LinkUżytkownik2|Persino/Gadget-map-toggler.js}}. Z góry dziękuję! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 18:38, 11 gru 2021 (CET) == Zamiana wartości linkowej i szablonowej == {{Ping|Wargo}}Czy mógłbyś zamienić na stronie: {{LinkUżytkownik2|Rychozol/common.js}}, z wartości: {{Nowiki|[[GNU Free Documentation License|GFDL]]}}, na: {{Nowiki|[[Wikibooks:GNU Free Documentation License|GFDL]]}}, a także na tej samej stronie wartość: {{s|clear}}, na {{s|BrClear}}, ponieważ ze względu na zmianę nazw stron. Z góry dziękuję! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 09:35, 13 gru 2021 (CET) <del>== Dalsze zmiany na stronach gadżetów (pilne) == {{Ping|Wargo}}Czy mógłbyś zainstalować gadżet "Gadget-gConfig", tak jak na stronie {{LinkUżytkownik2|Persino/Gadgets-definition}} (pierwsza linijka) w {{LinkKomunikat2|Gadgets-definition}}, a co do tego, jego kod {{LinkUżytkownik2|Persino/Gadget-gConfig.js}} zainstalować w miejscu {{LinkKomunikat2|Gadget-gConfig.js}} (jego opis jest w {{LinkUżytkownik2|Persino/Gadget-gConfig}}), przenosząc go do {{LinkKomunikat2|Gadget-gConfig.js}} (jego opis do {{LinkKomunikat2|Gadget-gConfig}}). A później zaaktualizuj gadżet {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}, a także zainstalować w miejscu {{LinkKomunikat2|Gadget-Funkcje.js}} gadżet {{LinkUżytkownik2|Persino/Gadget-Funkcje.js}}, a również zaktualizować wpis dla gadżetu StronaSubst tak jak w {{LinkUżytkownik2|Persino/Gadgets-definition}}. A później sprawdzić, czy wszystko działa. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 13:19, 4 lut 2022 (CET)</del> == Przepełnienie scrollbarów, poszczególnych elementów strony, a ustawienia różnych klas, jeżeli takowe istnieją == {{Ping|Wargo}}Czy mógłbyś uwzględnić na stronie {{LinkKomunikat2|Common.js}} część mojej strony, która jest po sekwencji /**/, będąca na stronie {{LinkUżytkownik2|Persino/common.js}}. Ten skrypt sprawdza, czy nastąpiło przepełnienie elementów strony dokumentu HTML Wikibooks, a jeżeli nastąpiło, to następuje ustawienie tam odpowiednich klas, a jeżeli ono znikło, to usunięcie tych klas. Ten skrypt jest mi potrzebny do szablonu {{s|StronaStart}} i jego pokrewnych oraz do mojego ustawienia skórki vector-2022, która jest w mojej przestrzeni użytkownika. Dziękuję za spełnienie mojej prośby. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 19:23, 27 maj 2022 (CEST) == Aktualizacja przepełnienia scrollbarów i implementacja sticky == {{Ping|Wargo}} Czy mógłbyś uwzględnić na stronie {{LinkKomunikat2|Common.js}} część mojej strony, która jest po sekwencji /**/, będąca na stronie {{LinkUżytkownik2|Persino/common.js}}. W przypadku pierwszego algorytmu, dodałem tam klasy {{Code|mw-overflow-x}} i {{Code|mw-overflow-y}}, które ten algorytm rozpoznaje, i dla nich liczy, czy nastąpiło to właśnie przepełnienie. A wcześniej liczyło dla wszystkich znaczników na stronie, co spowalniało całą stronę. Tam, gdzie, ważne jest liczenie przepełnienie wstawiłem {{Code|mw-overflow-x}}, czy {{Code|mw-overflow-y}}, czyli algorytm ten tam powinien działać, co można sprawdzić na stronie głównej tego projektu ({{NAZWASERWISU|link=tak}}). Drugi algorytm jest rozszerzenie właściwości {{Code|position:sticky}}, który on nie działa, gdy choćby jeden z rodziców jest z nie {{Code|overflow:visible}}, ale z {{Code|overflow}}, a ja zrobiłem, że jednak zaczeło działać, a ja tak to zrobiłem: {{Code|position:sticky}} zastąpiłem {{Code|position:absolute}}, w tym znaczników ustawiam {{Code|mw-sticky-y}} (przesuw w pionie) lub {{Code|mw-sticky-x}} (przesuw w poziomie), wtedy ten algorytm JavaScript działa tak, że pudełko przesuwa się od pewnej granicy do pewnej, ale nigdy nie wychodzi poza te granice, czyli działa podobnie jak {{Code|position:sticky}}. Dziękuję za spełnienie mojej prośby. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 12:41, 9 lip 2022 (CEST) ==Aktualizacja skryptów na {{LinkKomunikat2|common.js}} z {{LinkUżytkownik2|Persino/common.js}}== {{Ping|Wargo}} Czy mógłbyś zaktualizować kod na stronie {{LinkKomunikat2|common.js}} ze strony {{LinkUżytkownik2|Persino/common.js}} pod znakiem {{Code|/**/}}. Zdefiniowałem przestrzeń nazw {{Code|Common}} definicją: {{Pre|var Common{{=}}new Array();}} Prawie wszystkie funkcje ze strony {{LinkKomunikat2|common.js}} przeniosłem do tej przestrzeni na stronie {{LinkUżytkownik2|Persino/common.js}} (tutaj wszystkie funkcje są w przestrzeni {{Code|Common}}). Rozwinąłem funkcję {{Code|Common.ScrollBarOverflow}}, {{Code|Common.StickyXY}} i {{Code|Common.OptimalXY}}. Napisałem od nowa funkcje: {{Code|Common.RamkiTableIDiv}} i {{Code|Common.ZdarzeniaDodatkoweFunkcyjneXY}} oraz funkcję do obsługi szablonu {{s|StronaStart}} i jego pokrewnych książkowych z definiowałem w postaci: {{Code|Common.StronaStart}}. Co oznaczają te funkcje: * {{Code|Common.ScrollBarOverflow}} - do generowania pewnych klas, które służą do obsługi pudełka z paskami przewijania, * {{Code|Common.StickyXY}} - aktualizacja funkcji {{Code|position:sticky}}, tam gdzie go nie można go użyć, do używamy tej funkcji, * {{Code|Common.OptimalXY}} - do obsługi boksów na stronach z użytymi szablonami stronicowymi książkowymi otwierającymi i zamykającymi, * {{Code|Common.RamkiTableIDiv}} - dodaje dalsze funkcje przy przyciskach tabel i ramek, nawigacyjnych, * {{Code|Common.ZdarzeniaDodatkoweFunkcyjneXY}} - dodaje zdarzenia do obsługi funkcji: {{Code|Common.StickyXY}} i {{Code|Common.OptimalXY}}, * {{Code|Common.StronaStart}} - służy do obsługi spisu treści i boksów szablonu {{s|StronaStart}}. Na stronach podręcznikowych boksy i spisy treści są responsywne według moich ustawień, a dla wszystkich użytkowników będą responsywne po zaktualizowaniu strony {{LinkKomunikat2|common.js}} przy pomocy {{LinkUżytkownik2|Persino/common.js}}. ---- Proszę o pilną reakcję i zrealizowanie mojej prośby. Z góry dziękuję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 15:55, 3 sie 2022 (CEST) :Czy coś jest do usunięcia z obecnego common.js? Tj. czy coś stamtąd mam tym zastąpić? [[Wikipedysta:Wargo|Wargo]] ([[Dyskusja wikipedysty:Wargo|dyskusja]]) 20:55, 7 sie 2022 (CEST) ::{{Ping|Wargo}}Właśnie masz zastąpić nową wersją z pod /**/ z: {{LinkUżytkownik2|Persino/common.js}}, zastępując całą zawartość strony w: {{LinkKomunikat2|common.js}}. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 21:04, 7 sie 2022 (CEST) :::{{Ping|Wargo}} Już możesz zastępować, wszystko gotowe! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 21:39, 7 sie 2022 (CEST) ===Ostatnia poprawka=== {{Ping|Wargo}}Czy mógłbyś linijkę kodu: {{Pre|var top_ab{{=}}rect_rodzic[top]-margintop; var bottom_ab{{=}}(wys-rect_rodzic[bottom])-marginbottom; }} poprawić na: {{Pre|var top_ab{{=}}rect_rodzic[top]; var bottom_ab{{=}}(wys-rect_rodzic[bottom]); }} w {{LinkKomunikat2|common.js}} według {{LinkUżytkownik2|Persino/common.js}}. Z góry dziękuję za spełnienie mojej prośby. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 09:51, 8 sie 2022 (CEST) 1e6rilp4h300wssimwcf4tqznpdls1n 437176 437175 2022-08-08T07:53:24Z Persino 2851 /* Ostatnia poprawka */ wikitext text/x-wiki <noinclude>__LINKNOWEJSEKCJI__ [[Kategoria:Księga próśb i zadań]]</noinclude> {{fmbox|tekst=UWAGA: Nowe zgłoszenia o innym temacie niż to co dotyczy [[Wikibooks:Prośby do administratorów interfejsu/Zgłoszenia]] lub łamiące zasady [[Wikibooks:Wikietykieta|Wikietykiety]] mogą być bezwarunkowo wycofywane z tej strony}} <!-- Nowe zgłoszenia wstawiaj poniżej tej linii. Powyżej tej linii nic nie usuwaj. Nie usuwaj tej linii --> == Usunięcie wymuszenia białego tła w tabelach. == Zwracam się z prośbą o usunięcie [[MediaWiki:Common.css]] fragmentu <syntaxhighlight lang="css"> } + table.wikitable td, + table.prettytable td { + background: #f9f9f9; </syntaxhighlight> Fragment ten wymusza białe tło w tabelach, co uniemożliwia zastosowanie kolorowych komórek. Takowe bardzo by się przydały np. w opracowywanym przeze [[Zbiór zadań maturalnych/Biologia|Zbiorze zadań maturalnych z Biologii]] jak np. tu: [[:Kategoria:Zbiór zadań maturalnych/podstawa programowa 2017/Biologia/Zakres rozszerzony/Treści nauczania/II/3/1]]. Póki co posiłkuję się obramowaniem, chciałbym jednak docelowo zastosować kolorowanie komórek. Z góry dziękuję za rozpatrzenie mojej prośby. [[Wikipedysta:Superjurek|Superjurek]] ([[Dyskusja wikipedysty:Superjurek|dyskusja]]) 22:42, 16 kwi 2021 (CEST) ----- {{Ping|Superjurek}}Spróbuj użyć zapisu, np.: <syntaxhighlight lang="css"> background-color: blue !important; color:white !important; </syntaxhighlight> zamiast: <syntaxhighlight lang="css"> background-color: blue; color:white; </syntaxhighlight> to powinno naprawić cały problem! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 21:05, 27 maj 2022 (CEST) ==Wstawianie kodu do {{LinkKomunikat2|Common.js}}== Czy mógłbyś wsadzić do tej strony {{Code|.js}} kod: <syntaxhighlight lang="JavaScript"> function WyswietlStronyKsiazki(){ function WikikodTitle(data,tabs,titles,tabstrona){ var title=data.parse.title; var wikikod=data.parse.text['*']; var elements=tabstrona[title]; for(var q in elements){ elements[q].innerHTML=wikikod; var a=elements[q].getElementsByTagName('a'); if((a!==null)&&(a.length>0)){ var lena=a.length; for(var i=0;i<lena;++i){ var href=a[i].getAttribute('href'); if(href!==null){ var re=/^[^\?]+\?[^&]+=[^&]*&?/g; if(!re.test(href)){ var re2=/#/g; var s=href.search(re2); if(s!=-1){ var re=/^\/wiki\//g; if(re.test(href)){ var href2=href.substring(6,s) href2=decodeURI(href2); href2=href2.replace(/[_\s]+/g," "); for(var s=0;s<titles.length;s++){ var strona=titles[s]; if(href2==strona){ var href3=href.replace(/^[^#]*/g,""); var a_toc=a[i]; a_toc.setAttribute('href',encodeURI(href3)); a_toc.setAttribute("title",""); } } } }else{ var re=/^\/wiki\//g; if(re.test(href)){ var hrefv=href.replace(re,""); var hrefs=decodeURI(hrefv); hrefs=hrefs.replace(/[_\s]+/g," "); for(var s=0;s<titles.length;s++){ var strona=titles[s]; if(hrefs==strona){ var hrefs2=hrefv.replace(/^[^\/]*\//g,""); var a_toc=a[i]; a_toc.setAttribute('href','#'+hrefs2); a_toc.setAttribute("title",""); } } } } } } } } } var tab_toc=new Array("toc","toc_spis"); for(var d=0;d<tab_toc.length;++d){ var toc=document.getElementsByClassName(tab_toc[d]); if((toc!==null)&&(toc.length>0)){ for(var q in elements){ var num=new Array(); var v=0; for(var e=0;e<tabs.length;++e){ if(tabs[e]==title){ v+=1; if(parseInt(q)+1==v){ num.push(parseInt(e)+1); break; } } } var headline=elements[q].getElementsByClassName("mw-headline"); if((headline!==null)&&(headline.length>0)){ var ulozenie=0; var ostanie=0; var len=headline.length; var naglowek=""; var liczba_ulozenia_w_menu_spisu_tresci=1; var h_number=1; for (var k=0;k<len;++k){ var element2=headline[k]; var nag=element2.innerHTML; var nag2=element2.getAttribute('id'); var h=element2.parentNode.tagName; var h_numer=h.replace(/^[^\d]+/g,""); h_numer=parseInt(h_numer) if((ulozenie==0)||(ulozenie>=h_numer)){ ulozenie=h_numer-1; }else { if(ostatnie+1<h_numer-ulozenie){ ulozenie=h_numer-ostatnie-1; } } ostatnie=h_numer-ulozenie; h_numer=h_numer-ulozenie; if(k==0){ num.push(1); var nag="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext\">"+nag+"</span>"; naglowek+="<ul><li><a href=\"#"+nag2+"\">"+nag+"</a>"; }else{ if(h_numer==liczba_ulozenia_w_menu_spisu_tresci){ num[num.length-1]+=1; var nag="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext\">"+nag+"</span>"; naglowek+="</li><li><a href=\"#"+nag2+"\">"+nag+"</a>"; }else{ if(h_numer>liczba_ulozenia_w_menu_spisu_tresci){ num.push(1); var nag="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext\">"+nag+"</span>"; naglowek+="<ul><li><a href=\"#"+nag2+"\">"+nag+"</a>"; liczba_ulozenia_w_menu_spisu_tresci=h_numer; }else{ if(h_numer<liczba_ulozenia_w_menu_spisu_tresci){ num.splice(num.length-liczba_ulozenia_w_menu_spisu_tresci+h_numer,liczba_ulozenia_w_menu_spisu_tresci-h_numer); num[num.length-1]+=1; var nag="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext\">"+nag+"</span>"; naglowek+=('</li></ul>'.repeat(liczba_ulozenia_w_menu_spisu_tresci-h_numer))+"</li><li><a href=\"#"+nag2+"\">"+nag+"</a>"; liczba_ulozenia_w_menu_spisu_tresci=h_numer; } } } } } if(naglowek!=""){ naglowek+=('</li></ul>'.repeat(liczba_ulozenia_w_menu_spisu_tresci)); for(var b=0;b<toc.length;++b){ var a2=toc[b].getElementsByTagName('a'); if((a2!=null)&&(a2.length>0)){ for(var y=0;y<a2.length;++y){ var parent=a2[y].parentNode; var href=a2[y].getAttribute('href'); href=href.replace(/^#/g,""); var title2=title.replace(/^[^\/]+\//g,""); if(href==title2.replace(/[_ ]+/g,"_")+((q>0)?("_"+(parseInt(q)+1)):"")){ var div=document.createElement('div'); div.innerHTML=naglowek; var links=a2[y].getElementsByClassName('toctext'); if((links!=null)&&(links.length>0)){ var link=links[0].innerHTML; if(link==title2){ parent.appendChild(div.getElementsByTagName('ul')[0]); } } } } } } } } } } } for(var d=0;d<tab_toc.length;++d){ var toc_pos=document.getElementsByClassName(tab_toc[d]); if((toc_pos!==null)&&(toc_pos.length>0)){ for(var w=0;w<toc_pos.length;++w){ var li=toc_pos[w].getElementsByTagName('li'); var poziom; var section=1; for(var z=0;z<li.length;++z){ var parent=li[z].parentNode.parentNode; if(parent!==null){ var klasa=parent.getAttribute('class'); if(klasa!==null){ var poziom=klasa.match(/toclevel-\d+/g); if(poziom!==null){ poziom=parseInt(poziom.toString().match(/\d+$/).toString())+1; }else{ poziom=1; } }else{poziom=1;} }else{poziom=1;} var klasa=li[z].getAttribute('class'); if(klasa!==null){ var czy_section=klasa.match(/tocsection-\d+/); if(czy_section!==null){ klasa=klasa.replace(/tocsection-\d+/g,"tocsection-"+section); li[z].setAttribute('class',klasa); }else{ li[z].classList.add("tocsection-"+section); } var czy_level=klasa.match(/toclevel-\d+/); if(czy_level!==null){ klasa=li[z].getAttribute('class'); klasa=klasa.replace(/toclevel-\d+/g,"toclevel-"+poziom); li[z].setAttribute('class',klasa); }else{ li[z].classList.add("toclevel-"+poziom); } }else{ li[z].setAttribute('class',"toclevel-"+poziom+" tocsection-"+section) } section=section+1; } } } } var headline=document.getElementsByClassName('mw-headline'); if((headline)&&(headline.length>0)){ for(var i=0;i<headline.length;++i){ var c=1; var el=headline[i]; var id0=el.innerHTML; id0=id0.replace(/[_\s]+/g,"_"); id0=id0.replace(/<[^<>]+>/g,""); for(var j=0;j<i;++j){ var el1=headline[j]; var id1=el1.innerHTML; id1=id1.replace(/[_\s]+/g,"_"); id1=id1.replace(/<[^<>]+>/g,""); if(id0==id1){ ++c; } } if(c==1){ el.setAttribute('id',id0); }else{ el.setAttribute('id',id0+"_"+c); } } } var tab_toc=new Array("toc","toc_spis"); for(d=0;d<tab_toc.length;++d){ var toc_pos=document.getElementsByClassName(tab_toc[d]); if((toc_pos!==null)&&(toc_pos.length>0)){ for(var w=0;w<toc_pos.length;++w){ var toc=toc_pos[w]; var a=toc.getElementsByTagName('a'); if((a)&&(a.length>0)){ for(var p=0;p<a.length;++p){ var strona=a[p].getElementsByClassName('toctext')[0].innerHTML.replace(/[_\s]+/g,"_"); strona=strona.replace(/<[^<>]+>/g,""); var c=1; for(var v=0;v<p;++v){ var strona2; strona2=a[v].getElementsByClassName('toctext')[0].innerHTML.replace(/[_\s]+/g,"_"); strona2=strona2.replace(/<[^<>]+>/g,""); if(strona==strona2){ ++c; } } strona=strona.replace(/<[^<>]+>/g,""); if(c==1){ a[p].setAttribute('href',"#"+strona); }else{ a[p].setAttribute('href',"#"+strona+"_"+c); } } } } } } } function StronaSubst(data){ var wikikod=data.parse.text['*']; var elem=document.createElement('div'); elem.innerHTML=wikikod; var klasa_mw_parser_out=elem.getElementsByClassName('mw-parser-output'); var wikikod_wyodrepniony=(((klasa_mw_parser_out)&&(klasa_mw_parser_out.length==1))?(klasa_mw_parser_out[0].innerHTML):wikikod); var czy_wikikod=wikikod_wyodrepniony.match(/^\s*$/g); if(czy_wikikod){return;} var strona_subst="strona_subst"; var tagclass=document.getElementsByClassName(strona_subst); if(tagclass==null){return null;} var liczba_elementow=tagclass.length; if(liczba_elementow==0){return null;} var titles=new Array(); var tabstrona=new Array(); var tabs=new Array(); for (var i=0;i<liczba_elementow;++i){ var element=tagclass[i]; if(element.tagName!="DIV"){return null;} var strona=element.innerHTML; var re = /^[_ ]*$/g; var dopasowanie = re.test(strona); if(dopasowanie){return null;}; strona=strona.replace(/^[_ ]*/g,""); strona=strona.replace(/[_ ]*$/g,""); strona=strona.replace(/[_ ]+/g," "); tabs[i]=strona; var czy=false; for(var d in titles){ if(titles[d]==strona){ czy=true; break; } } if(!czy){ titles[titles.length]=strona; } if(tabstrona[strona]==null){ tabstrona[strona]=new Array(); } var tab=tabstrona[strona]; var tablen=tab.length; tabstrona[strona][tablen]=element; } for ( var p in titles ) { var strona=titles[p]; var api=new mw.Api; api.get({ action: 'parse', format: 'json', prop: 'text', title: strona, text: '{{:'+strona+'}}', disabletoc: true, disablelimitreport: true, contentmodel: 'wikitext' }).done(function(data){ WikikodTitle(data,tabs,titles,tabstrona); }); } } var strona = mw.config.get('wgPageName'); var api=new mw.Api; api.get({ action: 'parse', format: 'json', prop: 'text', title: strona, text: '{{#invoke:StronicowyParser|CzyStronaSubst}}', disabletoc: true, disablelimitreport: true, contentmodel: 'wikitext' }).done(function(data){ StronaSubst(data) }); } $(WyswietlStronyKsiazki); </syntaxhighlight> Ten program {{Code|.js}} znajduje się na stronie: {{LinkUżytkownik2|Persino/common.js}}. Jak wstawisz ten kod do strony {{LinkKomunikat2|Common.js}}, to powinno wtedy zadziałać ładowanie modułów książki, za pomocą JavaScript, na stronie {{LinkUżytkownik2|Persino/Wersja do druku}}. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 09:09, 13 lis 2021 (CET) == Gadżet StronaSubst - dodawanie do listy gadżetów == Mamy sobie kod JavaScript {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} i opis gadżetu {{LinkUżytkownik2|Persino/Gadget-StronaSubst}}, czy mógłbyś przenieść na strony w przestrzeni nazw {{Np|MediaWiki|link=tak}}, i wywołaniu gadżetu w takiej formie jak w {{LinkUżytkownik2|Persino/Gadgets-definition}} przenieść na stronę {{LinkKomunikat2|Gadgets-definition}}. Wtedy strona {{LinkUżytkownik2|Persino/Wersja do druku}} powinna działać! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 14:14, 27 lis 2021 (CET) === Zamienianie kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}} === {{Ping|Wargo}}Chodzi tutaj, że jak będzie link do artykułu w nagłówku, to, żeby nie pojawiało się pole '''[ artykuł | edytuj ]''' zamiast '''[ edytuj ]''' - aktualnie w {{LinkKomunikat2|Gadget-StronaSubst.js}} pole '''[ artykuł | edytuj ]''' pojawia się zawsze zamiast '''[ edytuj ]''', wtedy gdy ma zawartość '''strona_subst''' jest nie pusta, to algorytm jest zakańczany. A jak jest nazwa strony w zawartości div-a '''strona_subst''', a nie link w nagłówku, to wtedy ma się prawo pojawić '''[ artykuł | edytuj ]''' zamiast '''[ edytuj ]'''. Czy mógłbyś wersję {{LinkKomunikat2|Gadget-StronaSubst.js}} zamienić na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}. Z góry dziękuję za rozpatrzenie mojej prośby! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 10:13, 30 lis 2021 (CET) ---- {{Ping|Wargo}} Jeszcze, czy mógłbyś zamienić tekst w {{LinkKomunikat2|Gadget-StronaSubst}} z: {{Pre|(bez sekcji "Spis treści" i "Licencja")}} na {{Pre|(bez sekcji "Spis treści", "Bibliografia" i "Licencja")}} [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 19:18, 1 gru 2021 (CET) === Ostatnia poprawka kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}=== {{Ping|Wargo}}Chodzi tutaj, że algorytm zawiesza się na artykule {{LinkGłówna|Mechanika kwantowa/Mechanika kwantowa}}, to co poprawiłem już tak przestaje być, błąd znikł! Czy mógłbyś dokonać zamianę kodu? Proszę o pilną reakcję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 18:30, 3 gru 2021 (CET) === Miejmy nadzieję, że to jest ostatnia poprawka kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}=== {{Ping|Wargo}}Chodzi tutaj, że algorytm ma błędy JavaScript na stronie, przy danej książce: {{LinkGłówna|Szachy}}, czyli przy artykule: {{LinkGłówna|Szachy/Szachy}} - błąd tylko widać, gdy chcemy zbadać element, moja poprawka usuwa ten błąd! Czy mógłbyś dokonać zamianę kodu? Proszę o pilną reakcję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 15:50, 4 gru 2021 (CET) === Następna poprawka kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}} === {{Ping|Wargo}}Chodzi tutaj, że algorytm nie wyświetla w TOC (wbudowany spis treści) podrozdziałów dla artykułu {{LinkGłówna|Matematyka dla liceum/Matematyka dla liceum}}, moja poprawka usuwa ten błąd. Skrypt porządkuje artykuły według nagłówków na stronie tego artykułu w TOC, a zestaw artykułów, w danek sekcji, wyświetla, również w TOC, je przydzielone do niej. Czy mógłbyś dokonać zamianę kodu? Proszę o pilną reakcję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 14:51, 7 gru 2021 (CET) === Poważne poprawki w {{LinkKomunikat2|Gadget-StronaSubst.js}} na podstawie {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} oraz dodanie i zmiana pewnych gadżetów === {{Ping|Wargo}} Następne poprawki dotyczące wpisu w {{LinkKomunikat2|Gadget-StronaSubst.js}}, co do zauważonych drobnych błędów, czyli mógłbyś dokonać zamiany kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}. Z góry dziękuję. Poza tym wszystko działa, od razu dziękuję! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 19:32, 8 gru 2021 (CET) ---- {{Ping|Wargo}} Jeszcze, czy mógłbyś zamienić tekst w {{LinkKomunikat2|Gadget-StronaSubst}} z: {{Pre|(bez sekcji "Spis treści", "Bibliografia" i "Licencja")}} na {{Pre|(bez sekcji: "Spis treści", "Bibliografia", "Zobacz też", "Inne", "Licencja" i tym podobne)}} Dziękuję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 05:43, 9 gru 2021 (CET) ---- {{Ping|Wargo}} Czy mógłbyś uzupełnić {{LinkKomunikat2|Gadgets-definition}}, według {{LinkUżytkownik2|Persino/Gadgets-definition}} - szczególnie trzeba naprawić odwołanie do gadżetu StronaSubst, i dodać gadżety: {{LinkUżytkownik2|Persino/Gadget-gConfig.js}} (jego opis jest w {{LinkUżytkownik2|Persino/Gadget-gConfig}}), przenosząc go do {{LinkKomunikat2|Gadget-gConfig.js}} (jego opis do {{LinkKomunikat2|Gadget-gConfig}}), a także drugi gadżet dotyczący szablonu {{s|Cytuj}} przenieś z {{LinkUżytkownik2|Persino/Gadget-citation-access-info.js}} (jego opis to {{LinkUżytkownik2|Persino/Gadget-citation-access-info}}) do {{LinkKomunikat2|Gadget-citation-access-info.js}} (a jego opis do {{LinkKomunikat2|Gadget-citation-access-info}}). Gadżet '''gConfig''' potrzebny mi jest do gadżetu {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}}, którego zawartość należy przenieść do {{LinkKomunikat2|Gadget-StronaSubst.js}}, a gadżet {{LinkUżytkownik2|Persino/Gadget-citation-access-info.js}}, potrzebny mi jest do szablonu {{s|Cytuj}} do dymku do pełnej wersji tego szablonu, który należy przenieść do {{LinkKomunikat2|Gadget-citation-access-info.js}}. Proszę o pilną reakcję! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 15:04, 11 gru 2021 (CET) ---- Również proszę o zastąpienie strony komunikatu {{LinkKomunikat2|Gadget-map-toggler.js}} stroną {{LinkUżytkownik2|Persino/Gadget-map-toggler.js}}. Z góry dziękuję! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 18:38, 11 gru 2021 (CET) == Zamiana wartości linkowej i szablonowej == {{Ping|Wargo}}Czy mógłbyś zamienić na stronie: {{LinkUżytkownik2|Rychozol/common.js}}, z wartości: {{Nowiki|[[GNU Free Documentation License|GFDL]]}}, na: {{Nowiki|[[Wikibooks:GNU Free Documentation License|GFDL]]}}, a także na tej samej stronie wartość: {{s|clear}}, na {{s|BrClear}}, ponieważ ze względu na zmianę nazw stron. Z góry dziękuję! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 09:35, 13 gru 2021 (CET) <del>== Dalsze zmiany na stronach gadżetów (pilne) == {{Ping|Wargo}}Czy mógłbyś zainstalować gadżet "Gadget-gConfig", tak jak na stronie {{LinkUżytkownik2|Persino/Gadgets-definition}} (pierwsza linijka) w {{LinkKomunikat2|Gadgets-definition}}, a co do tego, jego kod {{LinkUżytkownik2|Persino/Gadget-gConfig.js}} zainstalować w miejscu {{LinkKomunikat2|Gadget-gConfig.js}} (jego opis jest w {{LinkUżytkownik2|Persino/Gadget-gConfig}}), przenosząc go do {{LinkKomunikat2|Gadget-gConfig.js}} (jego opis do {{LinkKomunikat2|Gadget-gConfig}}). A później zaaktualizuj gadżet {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}, a także zainstalować w miejscu {{LinkKomunikat2|Gadget-Funkcje.js}} gadżet {{LinkUżytkownik2|Persino/Gadget-Funkcje.js}}, a również zaktualizować wpis dla gadżetu StronaSubst tak jak w {{LinkUżytkownik2|Persino/Gadgets-definition}}. A później sprawdzić, czy wszystko działa. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 13:19, 4 lut 2022 (CET)</del> == Przepełnienie scrollbarów, poszczególnych elementów strony, a ustawienia różnych klas, jeżeli takowe istnieją == {{Ping|Wargo}}Czy mógłbyś uwzględnić na stronie {{LinkKomunikat2|Common.js}} część mojej strony, która jest po sekwencji /**/, będąca na stronie {{LinkUżytkownik2|Persino/common.js}}. Ten skrypt sprawdza, czy nastąpiło przepełnienie elementów strony dokumentu HTML Wikibooks, a jeżeli nastąpiło, to następuje ustawienie tam odpowiednich klas, a jeżeli ono znikło, to usunięcie tych klas. Ten skrypt jest mi potrzebny do szablonu {{s|StronaStart}} i jego pokrewnych oraz do mojego ustawienia skórki vector-2022, która jest w mojej przestrzeni użytkownika. Dziękuję za spełnienie mojej prośby. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 19:23, 27 maj 2022 (CEST) == Aktualizacja przepełnienia scrollbarów i implementacja sticky == {{Ping|Wargo}} Czy mógłbyś uwzględnić na stronie {{LinkKomunikat2|Common.js}} część mojej strony, która jest po sekwencji /**/, będąca na stronie {{LinkUżytkownik2|Persino/common.js}}. W przypadku pierwszego algorytmu, dodałem tam klasy {{Code|mw-overflow-x}} i {{Code|mw-overflow-y}}, które ten algorytm rozpoznaje, i dla nich liczy, czy nastąpiło to właśnie przepełnienie. A wcześniej liczyło dla wszystkich znaczników na stronie, co spowalniało całą stronę. Tam, gdzie, ważne jest liczenie przepełnienie wstawiłem {{Code|mw-overflow-x}}, czy {{Code|mw-overflow-y}}, czyli algorytm ten tam powinien działać, co można sprawdzić na stronie głównej tego projektu ({{NAZWASERWISU|link=tak}}). Drugi algorytm jest rozszerzenie właściwości {{Code|position:sticky}}, który on nie działa, gdy choćby jeden z rodziców jest z nie {{Code|overflow:visible}}, ale z {{Code|overflow}}, a ja zrobiłem, że jednak zaczeło działać, a ja tak to zrobiłem: {{Code|position:sticky}} zastąpiłem {{Code|position:absolute}}, w tym znaczników ustawiam {{Code|mw-sticky-y}} (przesuw w pionie) lub {{Code|mw-sticky-x}} (przesuw w poziomie), wtedy ten algorytm JavaScript działa tak, że pudełko przesuwa się od pewnej granicy do pewnej, ale nigdy nie wychodzi poza te granice, czyli działa podobnie jak {{Code|position:sticky}}. Dziękuję za spełnienie mojej prośby. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 12:41, 9 lip 2022 (CEST) ==Aktualizacja skryptów na {{LinkKomunikat2|common.js}} z {{LinkUżytkownik2|Persino/common.js}}== {{Ping|Wargo}} Czy mógłbyś zaktualizować kod na stronie {{LinkKomunikat2|common.js}} ze strony {{LinkUżytkownik2|Persino/common.js}} pod znakiem {{Code|/**/}}. Zdefiniowałem przestrzeń nazw {{Code|Common}} definicją: {{Pre|var Common{{=}}new Array();}} Prawie wszystkie funkcje ze strony {{LinkKomunikat2|common.js}} przeniosłem do tej przestrzeni na stronie {{LinkUżytkownik2|Persino/common.js}} (tutaj wszystkie funkcje są w przestrzeni {{Code|Common}}). Rozwinąłem funkcję {{Code|Common.ScrollBarOverflow}}, {{Code|Common.StickyXY}} i {{Code|Common.OptimalXY}}. Napisałem od nowa funkcje: {{Code|Common.RamkiTableIDiv}} i {{Code|Common.ZdarzeniaDodatkoweFunkcyjneXY}} oraz funkcję do obsługi szablonu {{s|StronaStart}} i jego pokrewnych książkowych z definiowałem w postaci: {{Code|Common.StronaStart}}. Co oznaczają te funkcje: * {{Code|Common.ScrollBarOverflow}} - do generowania pewnych klas, które służą do obsługi pudełka z paskami przewijania, * {{Code|Common.StickyXY}} - aktualizacja funkcji {{Code|position:sticky}}, tam gdzie go nie można go użyć, do używamy tej funkcji, * {{Code|Common.OptimalXY}} - do obsługi boksów na stronach z użytymi szablonami stronicowymi książkowymi otwierającymi i zamykającymi, * {{Code|Common.RamkiTableIDiv}} - dodaje dalsze funkcje przy przyciskach tabel i ramek, nawigacyjnych, * {{Code|Common.ZdarzeniaDodatkoweFunkcyjneXY}} - dodaje zdarzenia do obsługi funkcji: {{Code|Common.StickyXY}} i {{Code|Common.OptimalXY}}, * {{Code|Common.StronaStart}} - służy do obsługi spisu treści i boksów szablonu {{s|StronaStart}}. Na stronach podręcznikowych boksy i spisy treści są responsywne według moich ustawień, a dla wszystkich użytkowników będą responsywne po zaktualizowaniu strony {{LinkKomunikat2|common.js}} przy pomocy {{LinkUżytkownik2|Persino/common.js}}. ---- Proszę o pilną reakcję i zrealizowanie mojej prośby. Z góry dziękuję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 15:55, 3 sie 2022 (CEST) :Czy coś jest do usunięcia z obecnego common.js? Tj. czy coś stamtąd mam tym zastąpić? [[Wikipedysta:Wargo|Wargo]] ([[Dyskusja wikipedysty:Wargo|dyskusja]]) 20:55, 7 sie 2022 (CEST) ::{{Ping|Wargo}}Właśnie masz zastąpić nową wersją z pod /**/ z: {{LinkUżytkownik2|Persino/common.js}}, zastępując całą zawartość strony w: {{LinkKomunikat2|common.js}}. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 21:04, 7 sie 2022 (CEST) :::{{Ping|Wargo}} Już możesz zastępować, wszystko gotowe! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 21:39, 7 sie 2022 (CEST) ===Ostatnia poprawka=== {{Ping|Wargo}}Czy mógłbyś linijkę kodu: {{Pre|var top_ab{{=}}rect_rodzic[top]-margintop; var bottom_ab{{=}}(wys-rect_rodzic[bottom])-marginbottom; }} poprawić na: {{Pre|var top_ab{{=}}rect_rodzic[top]; var bottom_ab{{=}}(wys-rect_rodzic[bottom]); }} w funkcji: {{Code|Common.StickyXY}}, w {{LinkKomunikat2|common.js}} według {{LinkUżytkownik2|Persino/common.js}}. Z góry dziękuję za spełnienie mojej prośby. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 09:51, 8 sie 2022 (CEST) mchklkg10u38j3x51ob9iojz5v32a4o 437177 437176 2022-08-08T07:53:45Z Persino 2851 /* Ostatnia poprawka */ wikitext text/x-wiki <noinclude>__LINKNOWEJSEKCJI__ [[Kategoria:Księga próśb i zadań]]</noinclude> {{fmbox|tekst=UWAGA: Nowe zgłoszenia o innym temacie niż to co dotyczy [[Wikibooks:Prośby do administratorów interfejsu/Zgłoszenia]] lub łamiące zasady [[Wikibooks:Wikietykieta|Wikietykiety]] mogą być bezwarunkowo wycofywane z tej strony}} <!-- Nowe zgłoszenia wstawiaj poniżej tej linii. Powyżej tej linii nic nie usuwaj. Nie usuwaj tej linii --> == Usunięcie wymuszenia białego tła w tabelach. == Zwracam się z prośbą o usunięcie [[MediaWiki:Common.css]] fragmentu <syntaxhighlight lang="css"> } + table.wikitable td, + table.prettytable td { + background: #f9f9f9; </syntaxhighlight> Fragment ten wymusza białe tło w tabelach, co uniemożliwia zastosowanie kolorowych komórek. Takowe bardzo by się przydały np. w opracowywanym przeze [[Zbiór zadań maturalnych/Biologia|Zbiorze zadań maturalnych z Biologii]] jak np. tu: [[:Kategoria:Zbiór zadań maturalnych/podstawa programowa 2017/Biologia/Zakres rozszerzony/Treści nauczania/II/3/1]]. Póki co posiłkuję się obramowaniem, chciałbym jednak docelowo zastosować kolorowanie komórek. Z góry dziękuję za rozpatrzenie mojej prośby. [[Wikipedysta:Superjurek|Superjurek]] ([[Dyskusja wikipedysty:Superjurek|dyskusja]]) 22:42, 16 kwi 2021 (CEST) ----- {{Ping|Superjurek}}Spróbuj użyć zapisu, np.: <syntaxhighlight lang="css"> background-color: blue !important; color:white !important; </syntaxhighlight> zamiast: <syntaxhighlight lang="css"> background-color: blue; color:white; </syntaxhighlight> to powinno naprawić cały problem! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 21:05, 27 maj 2022 (CEST) ==Wstawianie kodu do {{LinkKomunikat2|Common.js}}== Czy mógłbyś wsadzić do tej strony {{Code|.js}} kod: <syntaxhighlight lang="JavaScript"> function WyswietlStronyKsiazki(){ function WikikodTitle(data,tabs,titles,tabstrona){ var title=data.parse.title; var wikikod=data.parse.text['*']; var elements=tabstrona[title]; for(var q in elements){ elements[q].innerHTML=wikikod; var a=elements[q].getElementsByTagName('a'); if((a!==null)&&(a.length>0)){ var lena=a.length; for(var i=0;i<lena;++i){ var href=a[i].getAttribute('href'); if(href!==null){ var re=/^[^\?]+\?[^&]+=[^&]*&?/g; if(!re.test(href)){ var re2=/#/g; var s=href.search(re2); if(s!=-1){ var re=/^\/wiki\//g; if(re.test(href)){ var href2=href.substring(6,s) href2=decodeURI(href2); href2=href2.replace(/[_\s]+/g," "); for(var s=0;s<titles.length;s++){ var strona=titles[s]; if(href2==strona){ var href3=href.replace(/^[^#]*/g,""); var a_toc=a[i]; a_toc.setAttribute('href',encodeURI(href3)); a_toc.setAttribute("title",""); } } } }else{ var re=/^\/wiki\//g; if(re.test(href)){ var hrefv=href.replace(re,""); var hrefs=decodeURI(hrefv); hrefs=hrefs.replace(/[_\s]+/g," "); for(var s=0;s<titles.length;s++){ var strona=titles[s]; if(hrefs==strona){ var hrefs2=hrefv.replace(/^[^\/]*\//g,""); var a_toc=a[i]; a_toc.setAttribute('href','#'+hrefs2); a_toc.setAttribute("title",""); } } } } } } } } } var tab_toc=new Array("toc","toc_spis"); for(var d=0;d<tab_toc.length;++d){ var toc=document.getElementsByClassName(tab_toc[d]); if((toc!==null)&&(toc.length>0)){ for(var q in elements){ var num=new Array(); var v=0; for(var e=0;e<tabs.length;++e){ if(tabs[e]==title){ v+=1; if(parseInt(q)+1==v){ num.push(parseInt(e)+1); break; } } } var headline=elements[q].getElementsByClassName("mw-headline"); if((headline!==null)&&(headline.length>0)){ var ulozenie=0; var ostanie=0; var len=headline.length; var naglowek=""; var liczba_ulozenia_w_menu_spisu_tresci=1; var h_number=1; for (var k=0;k<len;++k){ var element2=headline[k]; var nag=element2.innerHTML; var nag2=element2.getAttribute('id'); var h=element2.parentNode.tagName; var h_numer=h.replace(/^[^\d]+/g,""); h_numer=parseInt(h_numer) if((ulozenie==0)||(ulozenie>=h_numer)){ ulozenie=h_numer-1; }else { if(ostatnie+1<h_numer-ulozenie){ ulozenie=h_numer-ostatnie-1; } } ostatnie=h_numer-ulozenie; h_numer=h_numer-ulozenie; if(k==0){ num.push(1); var nag="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext\">"+nag+"</span>"; naglowek+="<ul><li><a href=\"#"+nag2+"\">"+nag+"</a>"; }else{ if(h_numer==liczba_ulozenia_w_menu_spisu_tresci){ num[num.length-1]+=1; var nag="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext\">"+nag+"</span>"; naglowek+="</li><li><a href=\"#"+nag2+"\">"+nag+"</a>"; }else{ if(h_numer>liczba_ulozenia_w_menu_spisu_tresci){ num.push(1); var nag="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext\">"+nag+"</span>"; naglowek+="<ul><li><a href=\"#"+nag2+"\">"+nag+"</a>"; liczba_ulozenia_w_menu_spisu_tresci=h_numer; }else{ if(h_numer<liczba_ulozenia_w_menu_spisu_tresci){ num.splice(num.length-liczba_ulozenia_w_menu_spisu_tresci+h_numer,liczba_ulozenia_w_menu_spisu_tresci-h_numer); num[num.length-1]+=1; var nag="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext\">"+nag+"</span>"; naglowek+=('</li></ul>'.repeat(liczba_ulozenia_w_menu_spisu_tresci-h_numer))+"</li><li><a href=\"#"+nag2+"\">"+nag+"</a>"; liczba_ulozenia_w_menu_spisu_tresci=h_numer; } } } } } if(naglowek!=""){ naglowek+=('</li></ul>'.repeat(liczba_ulozenia_w_menu_spisu_tresci)); for(var b=0;b<toc.length;++b){ var a2=toc[b].getElementsByTagName('a'); if((a2!=null)&&(a2.length>0)){ for(var y=0;y<a2.length;++y){ var parent=a2[y].parentNode; var href=a2[y].getAttribute('href'); href=href.replace(/^#/g,""); var title2=title.replace(/^[^\/]+\//g,""); if(href==title2.replace(/[_ ]+/g,"_")+((q>0)?("_"+(parseInt(q)+1)):"")){ var div=document.createElement('div'); div.innerHTML=naglowek; var links=a2[y].getElementsByClassName('toctext'); if((links!=null)&&(links.length>0)){ var link=links[0].innerHTML; if(link==title2){ parent.appendChild(div.getElementsByTagName('ul')[0]); } } } } } } } } } } } for(var d=0;d<tab_toc.length;++d){ var toc_pos=document.getElementsByClassName(tab_toc[d]); if((toc_pos!==null)&&(toc_pos.length>0)){ for(var w=0;w<toc_pos.length;++w){ var li=toc_pos[w].getElementsByTagName('li'); var poziom; var section=1; for(var z=0;z<li.length;++z){ var parent=li[z].parentNode.parentNode; if(parent!==null){ var klasa=parent.getAttribute('class'); if(klasa!==null){ var poziom=klasa.match(/toclevel-\d+/g); if(poziom!==null){ poziom=parseInt(poziom.toString().match(/\d+$/).toString())+1; }else{ poziom=1; } }else{poziom=1;} }else{poziom=1;} var klasa=li[z].getAttribute('class'); if(klasa!==null){ var czy_section=klasa.match(/tocsection-\d+/); if(czy_section!==null){ klasa=klasa.replace(/tocsection-\d+/g,"tocsection-"+section); li[z].setAttribute('class',klasa); }else{ li[z].classList.add("tocsection-"+section); } var czy_level=klasa.match(/toclevel-\d+/); if(czy_level!==null){ klasa=li[z].getAttribute('class'); klasa=klasa.replace(/toclevel-\d+/g,"toclevel-"+poziom); li[z].setAttribute('class',klasa); }else{ li[z].classList.add("toclevel-"+poziom); } }else{ li[z].setAttribute('class',"toclevel-"+poziom+" tocsection-"+section) } section=section+1; } } } } var headline=document.getElementsByClassName('mw-headline'); if((headline)&&(headline.length>0)){ for(var i=0;i<headline.length;++i){ var c=1; var el=headline[i]; var id0=el.innerHTML; id0=id0.replace(/[_\s]+/g,"_"); id0=id0.replace(/<[^<>]+>/g,""); for(var j=0;j<i;++j){ var el1=headline[j]; var id1=el1.innerHTML; id1=id1.replace(/[_\s]+/g,"_"); id1=id1.replace(/<[^<>]+>/g,""); if(id0==id1){ ++c; } } if(c==1){ el.setAttribute('id',id0); }else{ el.setAttribute('id',id0+"_"+c); } } } var tab_toc=new Array("toc","toc_spis"); for(d=0;d<tab_toc.length;++d){ var toc_pos=document.getElementsByClassName(tab_toc[d]); if((toc_pos!==null)&&(toc_pos.length>0)){ for(var w=0;w<toc_pos.length;++w){ var toc=toc_pos[w]; var a=toc.getElementsByTagName('a'); if((a)&&(a.length>0)){ for(var p=0;p<a.length;++p){ var strona=a[p].getElementsByClassName('toctext')[0].innerHTML.replace(/[_\s]+/g,"_"); strona=strona.replace(/<[^<>]+>/g,""); var c=1; for(var v=0;v<p;++v){ var strona2; strona2=a[v].getElementsByClassName('toctext')[0].innerHTML.replace(/[_\s]+/g,"_"); strona2=strona2.replace(/<[^<>]+>/g,""); if(strona==strona2){ ++c; } } strona=strona.replace(/<[^<>]+>/g,""); if(c==1){ a[p].setAttribute('href',"#"+strona); }else{ a[p].setAttribute('href',"#"+strona+"_"+c); } } } } } } } function StronaSubst(data){ var wikikod=data.parse.text['*']; var elem=document.createElement('div'); elem.innerHTML=wikikod; var klasa_mw_parser_out=elem.getElementsByClassName('mw-parser-output'); var wikikod_wyodrepniony=(((klasa_mw_parser_out)&&(klasa_mw_parser_out.length==1))?(klasa_mw_parser_out[0].innerHTML):wikikod); var czy_wikikod=wikikod_wyodrepniony.match(/^\s*$/g); if(czy_wikikod){return;} var strona_subst="strona_subst"; var tagclass=document.getElementsByClassName(strona_subst); if(tagclass==null){return null;} var liczba_elementow=tagclass.length; if(liczba_elementow==0){return null;} var titles=new Array(); var tabstrona=new Array(); var tabs=new Array(); for (var i=0;i<liczba_elementow;++i){ var element=tagclass[i]; if(element.tagName!="DIV"){return null;} var strona=element.innerHTML; var re = /^[_ ]*$/g; var dopasowanie = re.test(strona); if(dopasowanie){return null;}; strona=strona.replace(/^[_ ]*/g,""); strona=strona.replace(/[_ ]*$/g,""); strona=strona.replace(/[_ ]+/g," "); tabs[i]=strona; var czy=false; for(var d in titles){ if(titles[d]==strona){ czy=true; break; } } if(!czy){ titles[titles.length]=strona; } if(tabstrona[strona]==null){ tabstrona[strona]=new Array(); } var tab=tabstrona[strona]; var tablen=tab.length; tabstrona[strona][tablen]=element; } for ( var p in titles ) { var strona=titles[p]; var api=new mw.Api; api.get({ action: 'parse', format: 'json', prop: 'text', title: strona, text: '{{:'+strona+'}}', disabletoc: true, disablelimitreport: true, contentmodel: 'wikitext' }).done(function(data){ WikikodTitle(data,tabs,titles,tabstrona); }); } } var strona = mw.config.get('wgPageName'); var api=new mw.Api; api.get({ action: 'parse', format: 'json', prop: 'text', title: strona, text: '{{#invoke:StronicowyParser|CzyStronaSubst}}', disabletoc: true, disablelimitreport: true, contentmodel: 'wikitext' }).done(function(data){ StronaSubst(data) }); } $(WyswietlStronyKsiazki); </syntaxhighlight> Ten program {{Code|.js}} znajduje się na stronie: {{LinkUżytkownik2|Persino/common.js}}. Jak wstawisz ten kod do strony {{LinkKomunikat2|Common.js}}, to powinno wtedy zadziałać ładowanie modułów książki, za pomocą JavaScript, na stronie {{LinkUżytkownik2|Persino/Wersja do druku}}. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 09:09, 13 lis 2021 (CET) == Gadżet StronaSubst - dodawanie do listy gadżetów == Mamy sobie kod JavaScript {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} i opis gadżetu {{LinkUżytkownik2|Persino/Gadget-StronaSubst}}, czy mógłbyś przenieść na strony w przestrzeni nazw {{Np|MediaWiki|link=tak}}, i wywołaniu gadżetu w takiej formie jak w {{LinkUżytkownik2|Persino/Gadgets-definition}} przenieść na stronę {{LinkKomunikat2|Gadgets-definition}}. Wtedy strona {{LinkUżytkownik2|Persino/Wersja do druku}} powinna działać! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 14:14, 27 lis 2021 (CET) === Zamienianie kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}} === {{Ping|Wargo}}Chodzi tutaj, że jak będzie link do artykułu w nagłówku, to, żeby nie pojawiało się pole '''[ artykuł | edytuj ]''' zamiast '''[ edytuj ]''' - aktualnie w {{LinkKomunikat2|Gadget-StronaSubst.js}} pole '''[ artykuł | edytuj ]''' pojawia się zawsze zamiast '''[ edytuj ]''', wtedy gdy ma zawartość '''strona_subst''' jest nie pusta, to algorytm jest zakańczany. A jak jest nazwa strony w zawartości div-a '''strona_subst''', a nie link w nagłówku, to wtedy ma się prawo pojawić '''[ artykuł | edytuj ]''' zamiast '''[ edytuj ]'''. Czy mógłbyś wersję {{LinkKomunikat2|Gadget-StronaSubst.js}} zamienić na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}. Z góry dziękuję za rozpatrzenie mojej prośby! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 10:13, 30 lis 2021 (CET) ---- {{Ping|Wargo}} Jeszcze, czy mógłbyś zamienić tekst w {{LinkKomunikat2|Gadget-StronaSubst}} z: {{Pre|(bez sekcji "Spis treści" i "Licencja")}} na {{Pre|(bez sekcji "Spis treści", "Bibliografia" i "Licencja")}} [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 19:18, 1 gru 2021 (CET) === Ostatnia poprawka kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}=== {{Ping|Wargo}}Chodzi tutaj, że algorytm zawiesza się na artykule {{LinkGłówna|Mechanika kwantowa/Mechanika kwantowa}}, to co poprawiłem już tak przestaje być, błąd znikł! Czy mógłbyś dokonać zamianę kodu? Proszę o pilną reakcję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 18:30, 3 gru 2021 (CET) === Miejmy nadzieję, że to jest ostatnia poprawka kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}=== {{Ping|Wargo}}Chodzi tutaj, że algorytm ma błędy JavaScript na stronie, przy danej książce: {{LinkGłówna|Szachy}}, czyli przy artykule: {{LinkGłówna|Szachy/Szachy}} - błąd tylko widać, gdy chcemy zbadać element, moja poprawka usuwa ten błąd! Czy mógłbyś dokonać zamianę kodu? Proszę o pilną reakcję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 15:50, 4 gru 2021 (CET) === Następna poprawka kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}} === {{Ping|Wargo}}Chodzi tutaj, że algorytm nie wyświetla w TOC (wbudowany spis treści) podrozdziałów dla artykułu {{LinkGłówna|Matematyka dla liceum/Matematyka dla liceum}}, moja poprawka usuwa ten błąd. Skrypt porządkuje artykuły według nagłówków na stronie tego artykułu w TOC, a zestaw artykułów, w danek sekcji, wyświetla, również w TOC, je przydzielone do niej. Czy mógłbyś dokonać zamianę kodu? Proszę o pilną reakcję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 14:51, 7 gru 2021 (CET) === Poważne poprawki w {{LinkKomunikat2|Gadget-StronaSubst.js}} na podstawie {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} oraz dodanie i zmiana pewnych gadżetów === {{Ping|Wargo}} Następne poprawki dotyczące wpisu w {{LinkKomunikat2|Gadget-StronaSubst.js}}, co do zauważonych drobnych błędów, czyli mógłbyś dokonać zamiany kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}. Z góry dziękuję. Poza tym wszystko działa, od razu dziękuję! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 19:32, 8 gru 2021 (CET) ---- {{Ping|Wargo}} Jeszcze, czy mógłbyś zamienić tekst w {{LinkKomunikat2|Gadget-StronaSubst}} z: {{Pre|(bez sekcji "Spis treści", "Bibliografia" i "Licencja")}} na {{Pre|(bez sekcji: "Spis treści", "Bibliografia", "Zobacz też", "Inne", "Licencja" i tym podobne)}} Dziękuję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 05:43, 9 gru 2021 (CET) ---- {{Ping|Wargo}} Czy mógłbyś uzupełnić {{LinkKomunikat2|Gadgets-definition}}, według {{LinkUżytkownik2|Persino/Gadgets-definition}} - szczególnie trzeba naprawić odwołanie do gadżetu StronaSubst, i dodać gadżety: {{LinkUżytkownik2|Persino/Gadget-gConfig.js}} (jego opis jest w {{LinkUżytkownik2|Persino/Gadget-gConfig}}), przenosząc go do {{LinkKomunikat2|Gadget-gConfig.js}} (jego opis do {{LinkKomunikat2|Gadget-gConfig}}), a także drugi gadżet dotyczący szablonu {{s|Cytuj}} przenieś z {{LinkUżytkownik2|Persino/Gadget-citation-access-info.js}} (jego opis to {{LinkUżytkownik2|Persino/Gadget-citation-access-info}}) do {{LinkKomunikat2|Gadget-citation-access-info.js}} (a jego opis do {{LinkKomunikat2|Gadget-citation-access-info}}). Gadżet '''gConfig''' potrzebny mi jest do gadżetu {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}}, którego zawartość należy przenieść do {{LinkKomunikat2|Gadget-StronaSubst.js}}, a gadżet {{LinkUżytkownik2|Persino/Gadget-citation-access-info.js}}, potrzebny mi jest do szablonu {{s|Cytuj}} do dymku do pełnej wersji tego szablonu, który należy przenieść do {{LinkKomunikat2|Gadget-citation-access-info.js}}. Proszę o pilną reakcję! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 15:04, 11 gru 2021 (CET) ---- Również proszę o zastąpienie strony komunikatu {{LinkKomunikat2|Gadget-map-toggler.js}} stroną {{LinkUżytkownik2|Persino/Gadget-map-toggler.js}}. Z góry dziękuję! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 18:38, 11 gru 2021 (CET) == Zamiana wartości linkowej i szablonowej == {{Ping|Wargo}}Czy mógłbyś zamienić na stronie: {{LinkUżytkownik2|Rychozol/common.js}}, z wartości: {{Nowiki|[[GNU Free Documentation License|GFDL]]}}, na: {{Nowiki|[[Wikibooks:GNU Free Documentation License|GFDL]]}}, a także na tej samej stronie wartość: {{s|clear}}, na {{s|BrClear}}, ponieważ ze względu na zmianę nazw stron. Z góry dziękuję! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 09:35, 13 gru 2021 (CET) <del>== Dalsze zmiany na stronach gadżetów (pilne) == {{Ping|Wargo}}Czy mógłbyś zainstalować gadżet "Gadget-gConfig", tak jak na stronie {{LinkUżytkownik2|Persino/Gadgets-definition}} (pierwsza linijka) w {{LinkKomunikat2|Gadgets-definition}}, a co do tego, jego kod {{LinkUżytkownik2|Persino/Gadget-gConfig.js}} zainstalować w miejscu {{LinkKomunikat2|Gadget-gConfig.js}} (jego opis jest w {{LinkUżytkownik2|Persino/Gadget-gConfig}}), przenosząc go do {{LinkKomunikat2|Gadget-gConfig.js}} (jego opis do {{LinkKomunikat2|Gadget-gConfig}}). A później zaaktualizuj gadżet {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}, a także zainstalować w miejscu {{LinkKomunikat2|Gadget-Funkcje.js}} gadżet {{LinkUżytkownik2|Persino/Gadget-Funkcje.js}}, a również zaktualizować wpis dla gadżetu StronaSubst tak jak w {{LinkUżytkownik2|Persino/Gadgets-definition}}. A później sprawdzić, czy wszystko działa. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 13:19, 4 lut 2022 (CET)</del> == Przepełnienie scrollbarów, poszczególnych elementów strony, a ustawienia różnych klas, jeżeli takowe istnieją == {{Ping|Wargo}}Czy mógłbyś uwzględnić na stronie {{LinkKomunikat2|Common.js}} część mojej strony, która jest po sekwencji /**/, będąca na stronie {{LinkUżytkownik2|Persino/common.js}}. Ten skrypt sprawdza, czy nastąpiło przepełnienie elementów strony dokumentu HTML Wikibooks, a jeżeli nastąpiło, to następuje ustawienie tam odpowiednich klas, a jeżeli ono znikło, to usunięcie tych klas. Ten skrypt jest mi potrzebny do szablonu {{s|StronaStart}} i jego pokrewnych oraz do mojego ustawienia skórki vector-2022, która jest w mojej przestrzeni użytkownika. Dziękuję za spełnienie mojej prośby. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 19:23, 27 maj 2022 (CEST) == Aktualizacja przepełnienia scrollbarów i implementacja sticky == {{Ping|Wargo}} Czy mógłbyś uwzględnić na stronie {{LinkKomunikat2|Common.js}} część mojej strony, która jest po sekwencji /**/, będąca na stronie {{LinkUżytkownik2|Persino/common.js}}. W przypadku pierwszego algorytmu, dodałem tam klasy {{Code|mw-overflow-x}} i {{Code|mw-overflow-y}}, które ten algorytm rozpoznaje, i dla nich liczy, czy nastąpiło to właśnie przepełnienie. A wcześniej liczyło dla wszystkich znaczników na stronie, co spowalniało całą stronę. Tam, gdzie, ważne jest liczenie przepełnienie wstawiłem {{Code|mw-overflow-x}}, czy {{Code|mw-overflow-y}}, czyli algorytm ten tam powinien działać, co można sprawdzić na stronie głównej tego projektu ({{NAZWASERWISU|link=tak}}). Drugi algorytm jest rozszerzenie właściwości {{Code|position:sticky}}, który on nie działa, gdy choćby jeden z rodziców jest z nie {{Code|overflow:visible}}, ale z {{Code|overflow}}, a ja zrobiłem, że jednak zaczeło działać, a ja tak to zrobiłem: {{Code|position:sticky}} zastąpiłem {{Code|position:absolute}}, w tym znaczników ustawiam {{Code|mw-sticky-y}} (przesuw w pionie) lub {{Code|mw-sticky-x}} (przesuw w poziomie), wtedy ten algorytm JavaScript działa tak, że pudełko przesuwa się od pewnej granicy do pewnej, ale nigdy nie wychodzi poza te granice, czyli działa podobnie jak {{Code|position:sticky}}. Dziękuję za spełnienie mojej prośby. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 12:41, 9 lip 2022 (CEST) ==Aktualizacja skryptów na {{LinkKomunikat2|common.js}} z {{LinkUżytkownik2|Persino/common.js}}== {{Ping|Wargo}} Czy mógłbyś zaktualizować kod na stronie {{LinkKomunikat2|common.js}} ze strony {{LinkUżytkownik2|Persino/common.js}} pod znakiem {{Code|/**/}}. Zdefiniowałem przestrzeń nazw {{Code|Common}} definicją: {{Pre|var Common{{=}}new Array();}} Prawie wszystkie funkcje ze strony {{LinkKomunikat2|common.js}} przeniosłem do tej przestrzeni na stronie {{LinkUżytkownik2|Persino/common.js}} (tutaj wszystkie funkcje są w przestrzeni {{Code|Common}}). Rozwinąłem funkcję {{Code|Common.ScrollBarOverflow}}, {{Code|Common.StickyXY}} i {{Code|Common.OptimalXY}}. Napisałem od nowa funkcje: {{Code|Common.RamkiTableIDiv}} i {{Code|Common.ZdarzeniaDodatkoweFunkcyjneXY}} oraz funkcję do obsługi szablonu {{s|StronaStart}} i jego pokrewnych książkowych z definiowałem w postaci: {{Code|Common.StronaStart}}. Co oznaczają te funkcje: * {{Code|Common.ScrollBarOverflow}} - do generowania pewnych klas, które służą do obsługi pudełka z paskami przewijania, * {{Code|Common.StickyXY}} - aktualizacja funkcji {{Code|position:sticky}}, tam gdzie go nie można go użyć, do używamy tej funkcji, * {{Code|Common.OptimalXY}} - do obsługi boksów na stronach z użytymi szablonami stronicowymi książkowymi otwierającymi i zamykającymi, * {{Code|Common.RamkiTableIDiv}} - dodaje dalsze funkcje przy przyciskach tabel i ramek, nawigacyjnych, * {{Code|Common.ZdarzeniaDodatkoweFunkcyjneXY}} - dodaje zdarzenia do obsługi funkcji: {{Code|Common.StickyXY}} i {{Code|Common.OptimalXY}}, * {{Code|Common.StronaStart}} - służy do obsługi spisu treści i boksów szablonu {{s|StronaStart}}. Na stronach podręcznikowych boksy i spisy treści są responsywne według moich ustawień, a dla wszystkich użytkowników będą responsywne po zaktualizowaniu strony {{LinkKomunikat2|common.js}} przy pomocy {{LinkUżytkownik2|Persino/common.js}}. ---- Proszę o pilną reakcję i zrealizowanie mojej prośby. Z góry dziękuję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 15:55, 3 sie 2022 (CEST) :Czy coś jest do usunięcia z obecnego common.js? Tj. czy coś stamtąd mam tym zastąpić? [[Wikipedysta:Wargo|Wargo]] ([[Dyskusja wikipedysty:Wargo|dyskusja]]) 20:55, 7 sie 2022 (CEST) ::{{Ping|Wargo}}Właśnie masz zastąpić nową wersją z pod /**/ z: {{LinkUżytkownik2|Persino/common.js}}, zastępując całą zawartość strony w: {{LinkKomunikat2|common.js}}. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 21:04, 7 sie 2022 (CEST) :::{{Ping|Wargo}} Już możesz zastępować, wszystko gotowe! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 21:39, 7 sie 2022 (CEST) ===Ostatnia poprawka=== {{Ping|Wargo}}Czy mógłbyś linijkę kodu: {{Pre|var top_ab{{=}}rect_rodzic[top]-margintop; var bottom_ab{{=}}(wys-rect_rodzic[bottom])-marginbottom; }} poprawić na: {{Pre|var top_ab{{=}}rect_rodzic[top]; var bottom_ab{{=}}(wys-rect_rodzic[bottom]); }} w funkcji: {{Code|Common.StickyXY}}, w {{LinkKomunikat2|common.js}} według {{LinkUżytkownik2|Persino/common.js}}. Z góry dziękuję za spełnienie mojej prośby. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 09:51, 8 sie 2022 (CEST) 4qxmjikb1nocdw1idl0it8uxmmdg7z4 437178 437177 2022-08-08T08:02:14Z Persino 2851 /* Ostatnia poprawka */ wikitext text/x-wiki <noinclude>__LINKNOWEJSEKCJI__ [[Kategoria:Księga próśb i zadań]]</noinclude> {{fmbox|tekst=UWAGA: Nowe zgłoszenia o innym temacie niż to co dotyczy [[Wikibooks:Prośby do administratorów interfejsu/Zgłoszenia]] lub łamiące zasady [[Wikibooks:Wikietykieta|Wikietykiety]] mogą być bezwarunkowo wycofywane z tej strony}} <!-- Nowe zgłoszenia wstawiaj poniżej tej linii. Powyżej tej linii nic nie usuwaj. Nie usuwaj tej linii --> == Usunięcie wymuszenia białego tła w tabelach. == Zwracam się z prośbą o usunięcie [[MediaWiki:Common.css]] fragmentu <syntaxhighlight lang="css"> } + table.wikitable td, + table.prettytable td { + background: #f9f9f9; </syntaxhighlight> Fragment ten wymusza białe tło w tabelach, co uniemożliwia zastosowanie kolorowych komórek. Takowe bardzo by się przydały np. w opracowywanym przeze [[Zbiór zadań maturalnych/Biologia|Zbiorze zadań maturalnych z Biologii]] jak np. tu: [[:Kategoria:Zbiór zadań maturalnych/podstawa programowa 2017/Biologia/Zakres rozszerzony/Treści nauczania/II/3/1]]. Póki co posiłkuję się obramowaniem, chciałbym jednak docelowo zastosować kolorowanie komórek. Z góry dziękuję za rozpatrzenie mojej prośby. [[Wikipedysta:Superjurek|Superjurek]] ([[Dyskusja wikipedysty:Superjurek|dyskusja]]) 22:42, 16 kwi 2021 (CEST) ----- {{Ping|Superjurek}}Spróbuj użyć zapisu, np.: <syntaxhighlight lang="css"> background-color: blue !important; color:white !important; </syntaxhighlight> zamiast: <syntaxhighlight lang="css"> background-color: blue; color:white; </syntaxhighlight> to powinno naprawić cały problem! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 21:05, 27 maj 2022 (CEST) ==Wstawianie kodu do {{LinkKomunikat2|Common.js}}== Czy mógłbyś wsadzić do tej strony {{Code|.js}} kod: <syntaxhighlight lang="JavaScript"> function WyswietlStronyKsiazki(){ function WikikodTitle(data,tabs,titles,tabstrona){ var title=data.parse.title; var wikikod=data.parse.text['*']; var elements=tabstrona[title]; for(var q in elements){ elements[q].innerHTML=wikikod; var a=elements[q].getElementsByTagName('a'); if((a!==null)&&(a.length>0)){ var lena=a.length; for(var i=0;i<lena;++i){ var href=a[i].getAttribute('href'); if(href!==null){ var re=/^[^\?]+\?[^&]+=[^&]*&?/g; if(!re.test(href)){ var re2=/#/g; var s=href.search(re2); if(s!=-1){ var re=/^\/wiki\//g; if(re.test(href)){ var href2=href.substring(6,s) href2=decodeURI(href2); href2=href2.replace(/[_\s]+/g," "); for(var s=0;s<titles.length;s++){ var strona=titles[s]; if(href2==strona){ var href3=href.replace(/^[^#]*/g,""); var a_toc=a[i]; a_toc.setAttribute('href',encodeURI(href3)); a_toc.setAttribute("title",""); } } } }else{ var re=/^\/wiki\//g; if(re.test(href)){ var hrefv=href.replace(re,""); var hrefs=decodeURI(hrefv); hrefs=hrefs.replace(/[_\s]+/g," "); for(var s=0;s<titles.length;s++){ var strona=titles[s]; if(hrefs==strona){ var hrefs2=hrefv.replace(/^[^\/]*\//g,""); var a_toc=a[i]; a_toc.setAttribute('href','#'+hrefs2); a_toc.setAttribute("title",""); } } } } } } } } } var tab_toc=new Array("toc","toc_spis"); for(var d=0;d<tab_toc.length;++d){ var toc=document.getElementsByClassName(tab_toc[d]); if((toc!==null)&&(toc.length>0)){ for(var q in elements){ var num=new Array(); var v=0; for(var e=0;e<tabs.length;++e){ if(tabs[e]==title){ v+=1; if(parseInt(q)+1==v){ num.push(parseInt(e)+1); break; } } } var headline=elements[q].getElementsByClassName("mw-headline"); if((headline!==null)&&(headline.length>0)){ var ulozenie=0; var ostanie=0; var len=headline.length; var naglowek=""; var liczba_ulozenia_w_menu_spisu_tresci=1; var h_number=1; for (var k=0;k<len;++k){ var element2=headline[k]; var nag=element2.innerHTML; var nag2=element2.getAttribute('id'); var h=element2.parentNode.tagName; var h_numer=h.replace(/^[^\d]+/g,""); h_numer=parseInt(h_numer) if((ulozenie==0)||(ulozenie>=h_numer)){ ulozenie=h_numer-1; }else { if(ostatnie+1<h_numer-ulozenie){ ulozenie=h_numer-ostatnie-1; } } ostatnie=h_numer-ulozenie; h_numer=h_numer-ulozenie; if(k==0){ num.push(1); var nag="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext\">"+nag+"</span>"; naglowek+="<ul><li><a href=\"#"+nag2+"\">"+nag+"</a>"; }else{ if(h_numer==liczba_ulozenia_w_menu_spisu_tresci){ num[num.length-1]+=1; var nag="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext\">"+nag+"</span>"; naglowek+="</li><li><a href=\"#"+nag2+"\">"+nag+"</a>"; }else{ if(h_numer>liczba_ulozenia_w_menu_spisu_tresci){ num.push(1); var nag="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext\">"+nag+"</span>"; naglowek+="<ul><li><a href=\"#"+nag2+"\">"+nag+"</a>"; liczba_ulozenia_w_menu_spisu_tresci=h_numer; }else{ if(h_numer<liczba_ulozenia_w_menu_spisu_tresci){ num.splice(num.length-liczba_ulozenia_w_menu_spisu_tresci+h_numer,liczba_ulozenia_w_menu_spisu_tresci-h_numer); num[num.length-1]+=1; var nag="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext\">"+nag+"</span>"; naglowek+=('</li></ul>'.repeat(liczba_ulozenia_w_menu_spisu_tresci-h_numer))+"</li><li><a href=\"#"+nag2+"\">"+nag+"</a>"; liczba_ulozenia_w_menu_spisu_tresci=h_numer; } } } } } if(naglowek!=""){ naglowek+=('</li></ul>'.repeat(liczba_ulozenia_w_menu_spisu_tresci)); for(var b=0;b<toc.length;++b){ var a2=toc[b].getElementsByTagName('a'); if((a2!=null)&&(a2.length>0)){ for(var y=0;y<a2.length;++y){ var parent=a2[y].parentNode; var href=a2[y].getAttribute('href'); href=href.replace(/^#/g,""); var title2=title.replace(/^[^\/]+\//g,""); if(href==title2.replace(/[_ ]+/g,"_")+((q>0)?("_"+(parseInt(q)+1)):"")){ var div=document.createElement('div'); div.innerHTML=naglowek; var links=a2[y].getElementsByClassName('toctext'); if((links!=null)&&(links.length>0)){ var link=links[0].innerHTML; if(link==title2){ parent.appendChild(div.getElementsByTagName('ul')[0]); } } } } } } } } } } } for(var d=0;d<tab_toc.length;++d){ var toc_pos=document.getElementsByClassName(tab_toc[d]); if((toc_pos!==null)&&(toc_pos.length>0)){ for(var w=0;w<toc_pos.length;++w){ var li=toc_pos[w].getElementsByTagName('li'); var poziom; var section=1; for(var z=0;z<li.length;++z){ var parent=li[z].parentNode.parentNode; if(parent!==null){ var klasa=parent.getAttribute('class'); if(klasa!==null){ var poziom=klasa.match(/toclevel-\d+/g); if(poziom!==null){ poziom=parseInt(poziom.toString().match(/\d+$/).toString())+1; }else{ poziom=1; } }else{poziom=1;} }else{poziom=1;} var klasa=li[z].getAttribute('class'); if(klasa!==null){ var czy_section=klasa.match(/tocsection-\d+/); if(czy_section!==null){ klasa=klasa.replace(/tocsection-\d+/g,"tocsection-"+section); li[z].setAttribute('class',klasa); }else{ li[z].classList.add("tocsection-"+section); } var czy_level=klasa.match(/toclevel-\d+/); if(czy_level!==null){ klasa=li[z].getAttribute('class'); klasa=klasa.replace(/toclevel-\d+/g,"toclevel-"+poziom); li[z].setAttribute('class',klasa); }else{ li[z].classList.add("toclevel-"+poziom); } }else{ li[z].setAttribute('class',"toclevel-"+poziom+" tocsection-"+section) } section=section+1; } } } } var headline=document.getElementsByClassName('mw-headline'); if((headline)&&(headline.length>0)){ for(var i=0;i<headline.length;++i){ var c=1; var el=headline[i]; var id0=el.innerHTML; id0=id0.replace(/[_\s]+/g,"_"); id0=id0.replace(/<[^<>]+>/g,""); for(var j=0;j<i;++j){ var el1=headline[j]; var id1=el1.innerHTML; id1=id1.replace(/[_\s]+/g,"_"); id1=id1.replace(/<[^<>]+>/g,""); if(id0==id1){ ++c; } } if(c==1){ el.setAttribute('id',id0); }else{ el.setAttribute('id',id0+"_"+c); } } } var tab_toc=new Array("toc","toc_spis"); for(d=0;d<tab_toc.length;++d){ var toc_pos=document.getElementsByClassName(tab_toc[d]); if((toc_pos!==null)&&(toc_pos.length>0)){ for(var w=0;w<toc_pos.length;++w){ var toc=toc_pos[w]; var a=toc.getElementsByTagName('a'); if((a)&&(a.length>0)){ for(var p=0;p<a.length;++p){ var strona=a[p].getElementsByClassName('toctext')[0].innerHTML.replace(/[_\s]+/g,"_"); strona=strona.replace(/<[^<>]+>/g,""); var c=1; for(var v=0;v<p;++v){ var strona2; strona2=a[v].getElementsByClassName('toctext')[0].innerHTML.replace(/[_\s]+/g,"_"); strona2=strona2.replace(/<[^<>]+>/g,""); if(strona==strona2){ ++c; } } strona=strona.replace(/<[^<>]+>/g,""); if(c==1){ a[p].setAttribute('href',"#"+strona); }else{ a[p].setAttribute('href',"#"+strona+"_"+c); } } } } } } } function StronaSubst(data){ var wikikod=data.parse.text['*']; var elem=document.createElement('div'); elem.innerHTML=wikikod; var klasa_mw_parser_out=elem.getElementsByClassName('mw-parser-output'); var wikikod_wyodrepniony=(((klasa_mw_parser_out)&&(klasa_mw_parser_out.length==1))?(klasa_mw_parser_out[0].innerHTML):wikikod); var czy_wikikod=wikikod_wyodrepniony.match(/^\s*$/g); if(czy_wikikod){return;} var strona_subst="strona_subst"; var tagclass=document.getElementsByClassName(strona_subst); if(tagclass==null){return null;} var liczba_elementow=tagclass.length; if(liczba_elementow==0){return null;} var titles=new Array(); var tabstrona=new Array(); var tabs=new Array(); for (var i=0;i<liczba_elementow;++i){ var element=tagclass[i]; if(element.tagName!="DIV"){return null;} var strona=element.innerHTML; var re = /^[_ ]*$/g; var dopasowanie = re.test(strona); if(dopasowanie){return null;}; strona=strona.replace(/^[_ ]*/g,""); strona=strona.replace(/[_ ]*$/g,""); strona=strona.replace(/[_ ]+/g," "); tabs[i]=strona; var czy=false; for(var d in titles){ if(titles[d]==strona){ czy=true; break; } } if(!czy){ titles[titles.length]=strona; } if(tabstrona[strona]==null){ tabstrona[strona]=new Array(); } var tab=tabstrona[strona]; var tablen=tab.length; tabstrona[strona][tablen]=element; } for ( var p in titles ) { var strona=titles[p]; var api=new mw.Api; api.get({ action: 'parse', format: 'json', prop: 'text', title: strona, text: '{{:'+strona+'}}', disabletoc: true, disablelimitreport: true, contentmodel: 'wikitext' }).done(function(data){ WikikodTitle(data,tabs,titles,tabstrona); }); } } var strona = mw.config.get('wgPageName'); var api=new mw.Api; api.get({ action: 'parse', format: 'json', prop: 'text', title: strona, text: '{{#invoke:StronicowyParser|CzyStronaSubst}}', disabletoc: true, disablelimitreport: true, contentmodel: 'wikitext' }).done(function(data){ StronaSubst(data) }); } $(WyswietlStronyKsiazki); </syntaxhighlight> Ten program {{Code|.js}} znajduje się na stronie: {{LinkUżytkownik2|Persino/common.js}}. Jak wstawisz ten kod do strony {{LinkKomunikat2|Common.js}}, to powinno wtedy zadziałać ładowanie modułów książki, za pomocą JavaScript, na stronie {{LinkUżytkownik2|Persino/Wersja do druku}}. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 09:09, 13 lis 2021 (CET) == Gadżet StronaSubst - dodawanie do listy gadżetów == Mamy sobie kod JavaScript {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} i opis gadżetu {{LinkUżytkownik2|Persino/Gadget-StronaSubst}}, czy mógłbyś przenieść na strony w przestrzeni nazw {{Np|MediaWiki|link=tak}}, i wywołaniu gadżetu w takiej formie jak w {{LinkUżytkownik2|Persino/Gadgets-definition}} przenieść na stronę {{LinkKomunikat2|Gadgets-definition}}. Wtedy strona {{LinkUżytkownik2|Persino/Wersja do druku}} powinna działać! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 14:14, 27 lis 2021 (CET) === Zamienianie kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}} === {{Ping|Wargo}}Chodzi tutaj, że jak będzie link do artykułu w nagłówku, to, żeby nie pojawiało się pole '''[ artykuł | edytuj ]''' zamiast '''[ edytuj ]''' - aktualnie w {{LinkKomunikat2|Gadget-StronaSubst.js}} pole '''[ artykuł | edytuj ]''' pojawia się zawsze zamiast '''[ edytuj ]''', wtedy gdy ma zawartość '''strona_subst''' jest nie pusta, to algorytm jest zakańczany. A jak jest nazwa strony w zawartości div-a '''strona_subst''', a nie link w nagłówku, to wtedy ma się prawo pojawić '''[ artykuł | edytuj ]''' zamiast '''[ edytuj ]'''. Czy mógłbyś wersję {{LinkKomunikat2|Gadget-StronaSubst.js}} zamienić na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}. Z góry dziękuję za rozpatrzenie mojej prośby! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 10:13, 30 lis 2021 (CET) ---- {{Ping|Wargo}} Jeszcze, czy mógłbyś zamienić tekst w {{LinkKomunikat2|Gadget-StronaSubst}} z: {{Pre|(bez sekcji "Spis treści" i "Licencja")}} na {{Pre|(bez sekcji "Spis treści", "Bibliografia" i "Licencja")}} [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 19:18, 1 gru 2021 (CET) === Ostatnia poprawka kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}=== {{Ping|Wargo}}Chodzi tutaj, że algorytm zawiesza się na artykule {{LinkGłówna|Mechanika kwantowa/Mechanika kwantowa}}, to co poprawiłem już tak przestaje być, błąd znikł! Czy mógłbyś dokonać zamianę kodu? Proszę o pilną reakcję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 18:30, 3 gru 2021 (CET) === Miejmy nadzieję, że to jest ostatnia poprawka kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}=== {{Ping|Wargo}}Chodzi tutaj, że algorytm ma błędy JavaScript na stronie, przy danej książce: {{LinkGłówna|Szachy}}, czyli przy artykule: {{LinkGłówna|Szachy/Szachy}} - błąd tylko widać, gdy chcemy zbadać element, moja poprawka usuwa ten błąd! Czy mógłbyś dokonać zamianę kodu? Proszę o pilną reakcję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 15:50, 4 gru 2021 (CET) === Następna poprawka kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}} === {{Ping|Wargo}}Chodzi tutaj, że algorytm nie wyświetla w TOC (wbudowany spis treści) podrozdziałów dla artykułu {{LinkGłówna|Matematyka dla liceum/Matematyka dla liceum}}, moja poprawka usuwa ten błąd. Skrypt porządkuje artykuły według nagłówków na stronie tego artykułu w TOC, a zestaw artykułów, w danek sekcji, wyświetla, również w TOC, je przydzielone do niej. Czy mógłbyś dokonać zamianę kodu? Proszę o pilną reakcję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 14:51, 7 gru 2021 (CET) === Poważne poprawki w {{LinkKomunikat2|Gadget-StronaSubst.js}} na podstawie {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} oraz dodanie i zmiana pewnych gadżetów === {{Ping|Wargo}} Następne poprawki dotyczące wpisu w {{LinkKomunikat2|Gadget-StronaSubst.js}}, co do zauważonych drobnych błędów, czyli mógłbyś dokonać zamiany kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}. Z góry dziękuję. Poza tym wszystko działa, od razu dziękuję! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 19:32, 8 gru 2021 (CET) ---- {{Ping|Wargo}} Jeszcze, czy mógłbyś zamienić tekst w {{LinkKomunikat2|Gadget-StronaSubst}} z: {{Pre|(bez sekcji "Spis treści", "Bibliografia" i "Licencja")}} na {{Pre|(bez sekcji: "Spis treści", "Bibliografia", "Zobacz też", "Inne", "Licencja" i tym podobne)}} Dziękuję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 05:43, 9 gru 2021 (CET) ---- {{Ping|Wargo}} Czy mógłbyś uzupełnić {{LinkKomunikat2|Gadgets-definition}}, według {{LinkUżytkownik2|Persino/Gadgets-definition}} - szczególnie trzeba naprawić odwołanie do gadżetu StronaSubst, i dodać gadżety: {{LinkUżytkownik2|Persino/Gadget-gConfig.js}} (jego opis jest w {{LinkUżytkownik2|Persino/Gadget-gConfig}}), przenosząc go do {{LinkKomunikat2|Gadget-gConfig.js}} (jego opis do {{LinkKomunikat2|Gadget-gConfig}}), a także drugi gadżet dotyczący szablonu {{s|Cytuj}} przenieś z {{LinkUżytkownik2|Persino/Gadget-citation-access-info.js}} (jego opis to {{LinkUżytkownik2|Persino/Gadget-citation-access-info}}) do {{LinkKomunikat2|Gadget-citation-access-info.js}} (a jego opis do {{LinkKomunikat2|Gadget-citation-access-info}}). Gadżet '''gConfig''' potrzebny mi jest do gadżetu {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}}, którego zawartość należy przenieść do {{LinkKomunikat2|Gadget-StronaSubst.js}}, a gadżet {{LinkUżytkownik2|Persino/Gadget-citation-access-info.js}}, potrzebny mi jest do szablonu {{s|Cytuj}} do dymku do pełnej wersji tego szablonu, który należy przenieść do {{LinkKomunikat2|Gadget-citation-access-info.js}}. Proszę o pilną reakcję! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 15:04, 11 gru 2021 (CET) ---- Również proszę o zastąpienie strony komunikatu {{LinkKomunikat2|Gadget-map-toggler.js}} stroną {{LinkUżytkownik2|Persino/Gadget-map-toggler.js}}. Z góry dziękuję! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 18:38, 11 gru 2021 (CET) == Zamiana wartości linkowej i szablonowej == {{Ping|Wargo}}Czy mógłbyś zamienić na stronie: {{LinkUżytkownik2|Rychozol/common.js}}, z wartości: {{Nowiki|[[GNU Free Documentation License|GFDL]]}}, na: {{Nowiki|[[Wikibooks:GNU Free Documentation License|GFDL]]}}, a także na tej samej stronie wartość: {{s|clear}}, na {{s|BrClear}}, ponieważ ze względu na zmianę nazw stron. Z góry dziękuję! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 09:35, 13 gru 2021 (CET) <del>== Dalsze zmiany na stronach gadżetów (pilne) == {{Ping|Wargo}}Czy mógłbyś zainstalować gadżet "Gadget-gConfig", tak jak na stronie {{LinkUżytkownik2|Persino/Gadgets-definition}} (pierwsza linijka) w {{LinkKomunikat2|Gadgets-definition}}, a co do tego, jego kod {{LinkUżytkownik2|Persino/Gadget-gConfig.js}} zainstalować w miejscu {{LinkKomunikat2|Gadget-gConfig.js}} (jego opis jest w {{LinkUżytkownik2|Persino/Gadget-gConfig}}), przenosząc go do {{LinkKomunikat2|Gadget-gConfig.js}} (jego opis do {{LinkKomunikat2|Gadget-gConfig}}). A później zaaktualizuj gadżet {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}, a także zainstalować w miejscu {{LinkKomunikat2|Gadget-Funkcje.js}} gadżet {{LinkUżytkownik2|Persino/Gadget-Funkcje.js}}, a również zaktualizować wpis dla gadżetu StronaSubst tak jak w {{LinkUżytkownik2|Persino/Gadgets-definition}}. A później sprawdzić, czy wszystko działa. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 13:19, 4 lut 2022 (CET)</del> == Przepełnienie scrollbarów, poszczególnych elementów strony, a ustawienia różnych klas, jeżeli takowe istnieją == {{Ping|Wargo}}Czy mógłbyś uwzględnić na stronie {{LinkKomunikat2|Common.js}} część mojej strony, która jest po sekwencji /**/, będąca na stronie {{LinkUżytkownik2|Persino/common.js}}. Ten skrypt sprawdza, czy nastąpiło przepełnienie elementów strony dokumentu HTML Wikibooks, a jeżeli nastąpiło, to następuje ustawienie tam odpowiednich klas, a jeżeli ono znikło, to usunięcie tych klas. Ten skrypt jest mi potrzebny do szablonu {{s|StronaStart}} i jego pokrewnych oraz do mojego ustawienia skórki vector-2022, która jest w mojej przestrzeni użytkownika. Dziękuję za spełnienie mojej prośby. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 19:23, 27 maj 2022 (CEST) == Aktualizacja przepełnienia scrollbarów i implementacja sticky == {{Ping|Wargo}} Czy mógłbyś uwzględnić na stronie {{LinkKomunikat2|Common.js}} część mojej strony, która jest po sekwencji /**/, będąca na stronie {{LinkUżytkownik2|Persino/common.js}}. W przypadku pierwszego algorytmu, dodałem tam klasy {{Code|mw-overflow-x}} i {{Code|mw-overflow-y}}, które ten algorytm rozpoznaje, i dla nich liczy, czy nastąpiło to właśnie przepełnienie. A wcześniej liczyło dla wszystkich znaczników na stronie, co spowalniało całą stronę. Tam, gdzie, ważne jest liczenie przepełnienie wstawiłem {{Code|mw-overflow-x}}, czy {{Code|mw-overflow-y}}, czyli algorytm ten tam powinien działać, co można sprawdzić na stronie głównej tego projektu ({{NAZWASERWISU|link=tak}}). Drugi algorytm jest rozszerzenie właściwości {{Code|position:sticky}}, który on nie działa, gdy choćby jeden z rodziców jest z nie {{Code|overflow:visible}}, ale z {{Code|overflow}}, a ja zrobiłem, że jednak zaczeło działać, a ja tak to zrobiłem: {{Code|position:sticky}} zastąpiłem {{Code|position:absolute}}, w tym znaczników ustawiam {{Code|mw-sticky-y}} (przesuw w pionie) lub {{Code|mw-sticky-x}} (przesuw w poziomie), wtedy ten algorytm JavaScript działa tak, że pudełko przesuwa się od pewnej granicy do pewnej, ale nigdy nie wychodzi poza te granice, czyli działa podobnie jak {{Code|position:sticky}}. Dziękuję za spełnienie mojej prośby. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 12:41, 9 lip 2022 (CEST) ==Aktualizacja skryptów na {{LinkKomunikat2|common.js}} z {{LinkUżytkownik2|Persino/common.js}}== {{Ping|Wargo}} Czy mógłbyś zaktualizować kod na stronie {{LinkKomunikat2|common.js}} ze strony {{LinkUżytkownik2|Persino/common.js}} pod znakiem {{Code|/**/}}. Zdefiniowałem przestrzeń nazw {{Code|Common}} definicją: {{Pre|var Common{{=}}new Array();}} Prawie wszystkie funkcje ze strony {{LinkKomunikat2|common.js}} przeniosłem do tej przestrzeni na stronie {{LinkUżytkownik2|Persino/common.js}} (tutaj wszystkie funkcje są w przestrzeni {{Code|Common}}). Rozwinąłem funkcję {{Code|Common.ScrollBarOverflow}}, {{Code|Common.StickyXY}} i {{Code|Common.OptimalXY}}. Napisałem od nowa funkcje: {{Code|Common.RamkiTableIDiv}} i {{Code|Common.ZdarzeniaDodatkoweFunkcyjneXY}} oraz funkcję do obsługi szablonu {{s|StronaStart}} i jego pokrewnych książkowych z definiowałem w postaci: {{Code|Common.StronaStart}}. Co oznaczają te funkcje: * {{Code|Common.ScrollBarOverflow}} - do generowania pewnych klas, które służą do obsługi pudełka z paskami przewijania, * {{Code|Common.StickyXY}} - aktualizacja funkcji {{Code|position:sticky}}, tam gdzie go nie można go użyć, do używamy tej funkcji, * {{Code|Common.OptimalXY}} - do obsługi boksów na stronach z użytymi szablonami stronicowymi książkowymi otwierającymi i zamykającymi, * {{Code|Common.RamkiTableIDiv}} - dodaje dalsze funkcje przy przyciskach tabel i ramek, nawigacyjnych, * {{Code|Common.ZdarzeniaDodatkoweFunkcyjneXY}} - dodaje zdarzenia do obsługi funkcji: {{Code|Common.StickyXY}} i {{Code|Common.OptimalXY}}, * {{Code|Common.StronaStart}} - służy do obsługi spisu treści i boksów szablonu {{s|StronaStart}}. Na stronach podręcznikowych boksy i spisy treści są responsywne według moich ustawień, a dla wszystkich użytkowników będą responsywne po zaktualizowaniu strony {{LinkKomunikat2|common.js}} przy pomocy {{LinkUżytkownik2|Persino/common.js}}. ---- Proszę o pilną reakcję i zrealizowanie mojej prośby. Z góry dziękuję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 15:55, 3 sie 2022 (CEST) :Czy coś jest do usunięcia z obecnego common.js? Tj. czy coś stamtąd mam tym zastąpić? [[Wikipedysta:Wargo|Wargo]] ([[Dyskusja wikipedysty:Wargo|dyskusja]]) 20:55, 7 sie 2022 (CEST) ::{{Ping|Wargo}}Właśnie masz zastąpić nową wersją z pod /**/ z: {{LinkUżytkownik2|Persino/common.js}}, zastępując całą zawartość strony w: {{LinkKomunikat2|common.js}}. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 21:04, 7 sie 2022 (CEST) :::{{Ping|Wargo}} Już możesz zastępować, wszystko gotowe! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 21:39, 7 sie 2022 (CEST) ===Ostatnia poprawka=== {{Ping|Wargo}}Czy mógłbyś linijkę kodu: {{Pre|var top_ab{{=}}rect_rodzic[top]-margintop; var bottom_ab{{=}}(wys-rect_rodzic[bottom])-marginbottom; }} poprawić na: {{Pre|var top_ab{{=}}rect_rodzic[top]; var bottom_ab{{=}}(wys-rect_rodzic[bottom]); }} w funkcji: {{Code|Common.StickyXY}}, w {{LinkKomunikat2|common.js}} według {{LinkUżytkownik2|Persino/common.js}}. Tj. jest to linijka: 481-482. Z góry dziękuję za spełnienie mojej prośby. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 09:51, 8 sie 2022 (CEST) qrbpeluihq3uajx0odyyd4f80gyw12n 437179 437178 2022-08-08T08:08:06Z Persino 2851 /* Ostatnia poprawka */ wikitext text/x-wiki <noinclude>__LINKNOWEJSEKCJI__ [[Kategoria:Księga próśb i zadań]]</noinclude> {{fmbox|tekst=UWAGA: Nowe zgłoszenia o innym temacie niż to co dotyczy [[Wikibooks:Prośby do administratorów interfejsu/Zgłoszenia]] lub łamiące zasady [[Wikibooks:Wikietykieta|Wikietykiety]] mogą być bezwarunkowo wycofywane z tej strony}} <!-- Nowe zgłoszenia wstawiaj poniżej tej linii. Powyżej tej linii nic nie usuwaj. Nie usuwaj tej linii --> == Usunięcie wymuszenia białego tła w tabelach. == Zwracam się z prośbą o usunięcie [[MediaWiki:Common.css]] fragmentu <syntaxhighlight lang="css"> } + table.wikitable td, + table.prettytable td { + background: #f9f9f9; </syntaxhighlight> Fragment ten wymusza białe tło w tabelach, co uniemożliwia zastosowanie kolorowych komórek. Takowe bardzo by się przydały np. w opracowywanym przeze [[Zbiór zadań maturalnych/Biologia|Zbiorze zadań maturalnych z Biologii]] jak np. tu: [[:Kategoria:Zbiór zadań maturalnych/podstawa programowa 2017/Biologia/Zakres rozszerzony/Treści nauczania/II/3/1]]. Póki co posiłkuję się obramowaniem, chciałbym jednak docelowo zastosować kolorowanie komórek. Z góry dziękuję za rozpatrzenie mojej prośby. [[Wikipedysta:Superjurek|Superjurek]] ([[Dyskusja wikipedysty:Superjurek|dyskusja]]) 22:42, 16 kwi 2021 (CEST) ----- {{Ping|Superjurek}}Spróbuj użyć zapisu, np.: <syntaxhighlight lang="css"> background-color: blue !important; color:white !important; </syntaxhighlight> zamiast: <syntaxhighlight lang="css"> background-color: blue; color:white; </syntaxhighlight> to powinno naprawić cały problem! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 21:05, 27 maj 2022 (CEST) ==Wstawianie kodu do {{LinkKomunikat2|Common.js}}== Czy mógłbyś wsadzić do tej strony {{Code|.js}} kod: <syntaxhighlight lang="JavaScript"> function WyswietlStronyKsiazki(){ function WikikodTitle(data,tabs,titles,tabstrona){ var title=data.parse.title; var wikikod=data.parse.text['*']; var elements=tabstrona[title]; for(var q in elements){ elements[q].innerHTML=wikikod; var a=elements[q].getElementsByTagName('a'); if((a!==null)&&(a.length>0)){ var lena=a.length; for(var i=0;i<lena;++i){ var href=a[i].getAttribute('href'); if(href!==null){ var re=/^[^\?]+\?[^&]+=[^&]*&?/g; if(!re.test(href)){ var re2=/#/g; var s=href.search(re2); if(s!=-1){ var re=/^\/wiki\//g; if(re.test(href)){ var href2=href.substring(6,s) href2=decodeURI(href2); href2=href2.replace(/[_\s]+/g," "); for(var s=0;s<titles.length;s++){ var strona=titles[s]; if(href2==strona){ var href3=href.replace(/^[^#]*/g,""); var a_toc=a[i]; a_toc.setAttribute('href',encodeURI(href3)); a_toc.setAttribute("title",""); } } } }else{ var re=/^\/wiki\//g; if(re.test(href)){ var hrefv=href.replace(re,""); var hrefs=decodeURI(hrefv); hrefs=hrefs.replace(/[_\s]+/g," "); for(var s=0;s<titles.length;s++){ var strona=titles[s]; if(hrefs==strona){ var hrefs2=hrefv.replace(/^[^\/]*\//g,""); var a_toc=a[i]; a_toc.setAttribute('href','#'+hrefs2); a_toc.setAttribute("title",""); } } } } } } } } } var tab_toc=new Array("toc","toc_spis"); for(var d=0;d<tab_toc.length;++d){ var toc=document.getElementsByClassName(tab_toc[d]); if((toc!==null)&&(toc.length>0)){ for(var q in elements){ var num=new Array(); var v=0; for(var e=0;e<tabs.length;++e){ if(tabs[e]==title){ v+=1; if(parseInt(q)+1==v){ num.push(parseInt(e)+1); break; } } } var headline=elements[q].getElementsByClassName("mw-headline"); if((headline!==null)&&(headline.length>0)){ var ulozenie=0; var ostanie=0; var len=headline.length; var naglowek=""; var liczba_ulozenia_w_menu_spisu_tresci=1; var h_number=1; for (var k=0;k<len;++k){ var element2=headline[k]; var nag=element2.innerHTML; var nag2=element2.getAttribute('id'); var h=element2.parentNode.tagName; var h_numer=h.replace(/^[^\d]+/g,""); h_numer=parseInt(h_numer) if((ulozenie==0)||(ulozenie>=h_numer)){ ulozenie=h_numer-1; }else { if(ostatnie+1<h_numer-ulozenie){ ulozenie=h_numer-ostatnie-1; } } ostatnie=h_numer-ulozenie; h_numer=h_numer-ulozenie; if(k==0){ num.push(1); var nag="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext\">"+nag+"</span>"; naglowek+="<ul><li><a href=\"#"+nag2+"\">"+nag+"</a>"; }else{ if(h_numer==liczba_ulozenia_w_menu_spisu_tresci){ num[num.length-1]+=1; var nag="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext\">"+nag+"</span>"; naglowek+="</li><li><a href=\"#"+nag2+"\">"+nag+"</a>"; }else{ if(h_numer>liczba_ulozenia_w_menu_spisu_tresci){ num.push(1); var nag="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext\">"+nag+"</span>"; naglowek+="<ul><li><a href=\"#"+nag2+"\">"+nag+"</a>"; liczba_ulozenia_w_menu_spisu_tresci=h_numer; }else{ if(h_numer<liczba_ulozenia_w_menu_spisu_tresci){ num.splice(num.length-liczba_ulozenia_w_menu_spisu_tresci+h_numer,liczba_ulozenia_w_menu_spisu_tresci-h_numer); num[num.length-1]+=1; var nag="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext\">"+nag+"</span>"; naglowek+=('</li></ul>'.repeat(liczba_ulozenia_w_menu_spisu_tresci-h_numer))+"</li><li><a href=\"#"+nag2+"\">"+nag+"</a>"; liczba_ulozenia_w_menu_spisu_tresci=h_numer; } } } } } if(naglowek!=""){ naglowek+=('</li></ul>'.repeat(liczba_ulozenia_w_menu_spisu_tresci)); for(var b=0;b<toc.length;++b){ var a2=toc[b].getElementsByTagName('a'); if((a2!=null)&&(a2.length>0)){ for(var y=0;y<a2.length;++y){ var parent=a2[y].parentNode; var href=a2[y].getAttribute('href'); href=href.replace(/^#/g,""); var title2=title.replace(/^[^\/]+\//g,""); if(href==title2.replace(/[_ ]+/g,"_")+((q>0)?("_"+(parseInt(q)+1)):"")){ var div=document.createElement('div'); div.innerHTML=naglowek; var links=a2[y].getElementsByClassName('toctext'); if((links!=null)&&(links.length>0)){ var link=links[0].innerHTML; if(link==title2){ parent.appendChild(div.getElementsByTagName('ul')[0]); } } } } } } } } } } } for(var d=0;d<tab_toc.length;++d){ var toc_pos=document.getElementsByClassName(tab_toc[d]); if((toc_pos!==null)&&(toc_pos.length>0)){ for(var w=0;w<toc_pos.length;++w){ var li=toc_pos[w].getElementsByTagName('li'); var poziom; var section=1; for(var z=0;z<li.length;++z){ var parent=li[z].parentNode.parentNode; if(parent!==null){ var klasa=parent.getAttribute('class'); if(klasa!==null){ var poziom=klasa.match(/toclevel-\d+/g); if(poziom!==null){ poziom=parseInt(poziom.toString().match(/\d+$/).toString())+1; }else{ poziom=1; } }else{poziom=1;} }else{poziom=1;} var klasa=li[z].getAttribute('class'); if(klasa!==null){ var czy_section=klasa.match(/tocsection-\d+/); if(czy_section!==null){ klasa=klasa.replace(/tocsection-\d+/g,"tocsection-"+section); li[z].setAttribute('class',klasa); }else{ li[z].classList.add("tocsection-"+section); } var czy_level=klasa.match(/toclevel-\d+/); if(czy_level!==null){ klasa=li[z].getAttribute('class'); klasa=klasa.replace(/toclevel-\d+/g,"toclevel-"+poziom); li[z].setAttribute('class',klasa); }else{ li[z].classList.add("toclevel-"+poziom); } }else{ li[z].setAttribute('class',"toclevel-"+poziom+" tocsection-"+section) } section=section+1; } } } } var headline=document.getElementsByClassName('mw-headline'); if((headline)&&(headline.length>0)){ for(var i=0;i<headline.length;++i){ var c=1; var el=headline[i]; var id0=el.innerHTML; id0=id0.replace(/[_\s]+/g,"_"); id0=id0.replace(/<[^<>]+>/g,""); for(var j=0;j<i;++j){ var el1=headline[j]; var id1=el1.innerHTML; id1=id1.replace(/[_\s]+/g,"_"); id1=id1.replace(/<[^<>]+>/g,""); if(id0==id1){ ++c; } } if(c==1){ el.setAttribute('id',id0); }else{ el.setAttribute('id',id0+"_"+c); } } } var tab_toc=new Array("toc","toc_spis"); for(d=0;d<tab_toc.length;++d){ var toc_pos=document.getElementsByClassName(tab_toc[d]); if((toc_pos!==null)&&(toc_pos.length>0)){ for(var w=0;w<toc_pos.length;++w){ var toc=toc_pos[w]; var a=toc.getElementsByTagName('a'); if((a)&&(a.length>0)){ for(var p=0;p<a.length;++p){ var strona=a[p].getElementsByClassName('toctext')[0].innerHTML.replace(/[_\s]+/g,"_"); strona=strona.replace(/<[^<>]+>/g,""); var c=1; for(var v=0;v<p;++v){ var strona2; strona2=a[v].getElementsByClassName('toctext')[0].innerHTML.replace(/[_\s]+/g,"_"); strona2=strona2.replace(/<[^<>]+>/g,""); if(strona==strona2){ ++c; } } strona=strona.replace(/<[^<>]+>/g,""); if(c==1){ a[p].setAttribute('href',"#"+strona); }else{ a[p].setAttribute('href',"#"+strona+"_"+c); } } } } } } } function StronaSubst(data){ var wikikod=data.parse.text['*']; var elem=document.createElement('div'); elem.innerHTML=wikikod; var klasa_mw_parser_out=elem.getElementsByClassName('mw-parser-output'); var wikikod_wyodrepniony=(((klasa_mw_parser_out)&&(klasa_mw_parser_out.length==1))?(klasa_mw_parser_out[0].innerHTML):wikikod); var czy_wikikod=wikikod_wyodrepniony.match(/^\s*$/g); if(czy_wikikod){return;} var strona_subst="strona_subst"; var tagclass=document.getElementsByClassName(strona_subst); if(tagclass==null){return null;} var liczba_elementow=tagclass.length; if(liczba_elementow==0){return null;} var titles=new Array(); var tabstrona=new Array(); var tabs=new Array(); for (var i=0;i<liczba_elementow;++i){ var element=tagclass[i]; if(element.tagName!="DIV"){return null;} var strona=element.innerHTML; var re = /^[_ ]*$/g; var dopasowanie = re.test(strona); if(dopasowanie){return null;}; strona=strona.replace(/^[_ ]*/g,""); strona=strona.replace(/[_ ]*$/g,""); strona=strona.replace(/[_ ]+/g," "); tabs[i]=strona; var czy=false; for(var d in titles){ if(titles[d]==strona){ czy=true; break; } } if(!czy){ titles[titles.length]=strona; } if(tabstrona[strona]==null){ tabstrona[strona]=new Array(); } var tab=tabstrona[strona]; var tablen=tab.length; tabstrona[strona][tablen]=element; } for ( var p in titles ) { var strona=titles[p]; var api=new mw.Api; api.get({ action: 'parse', format: 'json', prop: 'text', title: strona, text: '{{:'+strona+'}}', disabletoc: true, disablelimitreport: true, contentmodel: 'wikitext' }).done(function(data){ WikikodTitle(data,tabs,titles,tabstrona); }); } } var strona = mw.config.get('wgPageName'); var api=new mw.Api; api.get({ action: 'parse', format: 'json', prop: 'text', title: strona, text: '{{#invoke:StronicowyParser|CzyStronaSubst}}', disabletoc: true, disablelimitreport: true, contentmodel: 'wikitext' }).done(function(data){ StronaSubst(data) }); } $(WyswietlStronyKsiazki); </syntaxhighlight> Ten program {{Code|.js}} znajduje się na stronie: {{LinkUżytkownik2|Persino/common.js}}. Jak wstawisz ten kod do strony {{LinkKomunikat2|Common.js}}, to powinno wtedy zadziałać ładowanie modułów książki, za pomocą JavaScript, na stronie {{LinkUżytkownik2|Persino/Wersja do druku}}. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 09:09, 13 lis 2021 (CET) == Gadżet StronaSubst - dodawanie do listy gadżetów == Mamy sobie kod JavaScript {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} i opis gadżetu {{LinkUżytkownik2|Persino/Gadget-StronaSubst}}, czy mógłbyś przenieść na strony w przestrzeni nazw {{Np|MediaWiki|link=tak}}, i wywołaniu gadżetu w takiej formie jak w {{LinkUżytkownik2|Persino/Gadgets-definition}} przenieść na stronę {{LinkKomunikat2|Gadgets-definition}}. Wtedy strona {{LinkUżytkownik2|Persino/Wersja do druku}} powinna działać! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 14:14, 27 lis 2021 (CET) === Zamienianie kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}} === {{Ping|Wargo}}Chodzi tutaj, że jak będzie link do artykułu w nagłówku, to, żeby nie pojawiało się pole '''[ artykuł | edytuj ]''' zamiast '''[ edytuj ]''' - aktualnie w {{LinkKomunikat2|Gadget-StronaSubst.js}} pole '''[ artykuł | edytuj ]''' pojawia się zawsze zamiast '''[ edytuj ]''', wtedy gdy ma zawartość '''strona_subst''' jest nie pusta, to algorytm jest zakańczany. A jak jest nazwa strony w zawartości div-a '''strona_subst''', a nie link w nagłówku, to wtedy ma się prawo pojawić '''[ artykuł | edytuj ]''' zamiast '''[ edytuj ]'''. Czy mógłbyś wersję {{LinkKomunikat2|Gadget-StronaSubst.js}} zamienić na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}. Z góry dziękuję za rozpatrzenie mojej prośby! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 10:13, 30 lis 2021 (CET) ---- {{Ping|Wargo}} Jeszcze, czy mógłbyś zamienić tekst w {{LinkKomunikat2|Gadget-StronaSubst}} z: {{Pre|(bez sekcji "Spis treści" i "Licencja")}} na {{Pre|(bez sekcji "Spis treści", "Bibliografia" i "Licencja")}} [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 19:18, 1 gru 2021 (CET) === Ostatnia poprawka kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}=== {{Ping|Wargo}}Chodzi tutaj, że algorytm zawiesza się na artykule {{LinkGłówna|Mechanika kwantowa/Mechanika kwantowa}}, to co poprawiłem już tak przestaje być, błąd znikł! Czy mógłbyś dokonać zamianę kodu? Proszę o pilną reakcję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 18:30, 3 gru 2021 (CET) === Miejmy nadzieję, że to jest ostatnia poprawka kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}=== {{Ping|Wargo}}Chodzi tutaj, że algorytm ma błędy JavaScript na stronie, przy danej książce: {{LinkGłówna|Szachy}}, czyli przy artykule: {{LinkGłówna|Szachy/Szachy}} - błąd tylko widać, gdy chcemy zbadać element, moja poprawka usuwa ten błąd! Czy mógłbyś dokonać zamianę kodu? Proszę o pilną reakcję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 15:50, 4 gru 2021 (CET) === Następna poprawka kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}} === {{Ping|Wargo}}Chodzi tutaj, że algorytm nie wyświetla w TOC (wbudowany spis treści) podrozdziałów dla artykułu {{LinkGłówna|Matematyka dla liceum/Matematyka dla liceum}}, moja poprawka usuwa ten błąd. Skrypt porządkuje artykuły według nagłówków na stronie tego artykułu w TOC, a zestaw artykułów, w danek sekcji, wyświetla, również w TOC, je przydzielone do niej. Czy mógłbyś dokonać zamianę kodu? Proszę o pilną reakcję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 14:51, 7 gru 2021 (CET) === Poważne poprawki w {{LinkKomunikat2|Gadget-StronaSubst.js}} na podstawie {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} oraz dodanie i zmiana pewnych gadżetów === {{Ping|Wargo}} Następne poprawki dotyczące wpisu w {{LinkKomunikat2|Gadget-StronaSubst.js}}, co do zauważonych drobnych błędów, czyli mógłbyś dokonać zamiany kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}. Z góry dziękuję. Poza tym wszystko działa, od razu dziękuję! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 19:32, 8 gru 2021 (CET) ---- {{Ping|Wargo}} Jeszcze, czy mógłbyś zamienić tekst w {{LinkKomunikat2|Gadget-StronaSubst}} z: {{Pre|(bez sekcji "Spis treści", "Bibliografia" i "Licencja")}} na {{Pre|(bez sekcji: "Spis treści", "Bibliografia", "Zobacz też", "Inne", "Licencja" i tym podobne)}} Dziękuję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 05:43, 9 gru 2021 (CET) ---- {{Ping|Wargo}} Czy mógłbyś uzupełnić {{LinkKomunikat2|Gadgets-definition}}, według {{LinkUżytkownik2|Persino/Gadgets-definition}} - szczególnie trzeba naprawić odwołanie do gadżetu StronaSubst, i dodać gadżety: {{LinkUżytkownik2|Persino/Gadget-gConfig.js}} (jego opis jest w {{LinkUżytkownik2|Persino/Gadget-gConfig}}), przenosząc go do {{LinkKomunikat2|Gadget-gConfig.js}} (jego opis do {{LinkKomunikat2|Gadget-gConfig}}), a także drugi gadżet dotyczący szablonu {{s|Cytuj}} przenieś z {{LinkUżytkownik2|Persino/Gadget-citation-access-info.js}} (jego opis to {{LinkUżytkownik2|Persino/Gadget-citation-access-info}}) do {{LinkKomunikat2|Gadget-citation-access-info.js}} (a jego opis do {{LinkKomunikat2|Gadget-citation-access-info}}). Gadżet '''gConfig''' potrzebny mi jest do gadżetu {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}}, którego zawartość należy przenieść do {{LinkKomunikat2|Gadget-StronaSubst.js}}, a gadżet {{LinkUżytkownik2|Persino/Gadget-citation-access-info.js}}, potrzebny mi jest do szablonu {{s|Cytuj}} do dymku do pełnej wersji tego szablonu, który należy przenieść do {{LinkKomunikat2|Gadget-citation-access-info.js}}. Proszę o pilną reakcję! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 15:04, 11 gru 2021 (CET) ---- Również proszę o zastąpienie strony komunikatu {{LinkKomunikat2|Gadget-map-toggler.js}} stroną {{LinkUżytkownik2|Persino/Gadget-map-toggler.js}}. Z góry dziękuję! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 18:38, 11 gru 2021 (CET) == Zamiana wartości linkowej i szablonowej == {{Ping|Wargo}}Czy mógłbyś zamienić na stronie: {{LinkUżytkownik2|Rychozol/common.js}}, z wartości: {{Nowiki|[[GNU Free Documentation License|GFDL]]}}, na: {{Nowiki|[[Wikibooks:GNU Free Documentation License|GFDL]]}}, a także na tej samej stronie wartość: {{s|clear}}, na {{s|BrClear}}, ponieważ ze względu na zmianę nazw stron. Z góry dziękuję! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 09:35, 13 gru 2021 (CET) <del>== Dalsze zmiany na stronach gadżetów (pilne) == {{Ping|Wargo}}Czy mógłbyś zainstalować gadżet "Gadget-gConfig", tak jak na stronie {{LinkUżytkownik2|Persino/Gadgets-definition}} (pierwsza linijka) w {{LinkKomunikat2|Gadgets-definition}}, a co do tego, jego kod {{LinkUżytkownik2|Persino/Gadget-gConfig.js}} zainstalować w miejscu {{LinkKomunikat2|Gadget-gConfig.js}} (jego opis jest w {{LinkUżytkownik2|Persino/Gadget-gConfig}}), przenosząc go do {{LinkKomunikat2|Gadget-gConfig.js}} (jego opis do {{LinkKomunikat2|Gadget-gConfig}}). A później zaaktualizuj gadżet {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}, a także zainstalować w miejscu {{LinkKomunikat2|Gadget-Funkcje.js}} gadżet {{LinkUżytkownik2|Persino/Gadget-Funkcje.js}}, a również zaktualizować wpis dla gadżetu StronaSubst tak jak w {{LinkUżytkownik2|Persino/Gadgets-definition}}. A później sprawdzić, czy wszystko działa. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 13:19, 4 lut 2022 (CET)</del> == Przepełnienie scrollbarów, poszczególnych elementów strony, a ustawienia różnych klas, jeżeli takowe istnieją == {{Ping|Wargo}}Czy mógłbyś uwzględnić na stronie {{LinkKomunikat2|Common.js}} część mojej strony, która jest po sekwencji /**/, będąca na stronie {{LinkUżytkownik2|Persino/common.js}}. Ten skrypt sprawdza, czy nastąpiło przepełnienie elementów strony dokumentu HTML Wikibooks, a jeżeli nastąpiło, to następuje ustawienie tam odpowiednich klas, a jeżeli ono znikło, to usunięcie tych klas. Ten skrypt jest mi potrzebny do szablonu {{s|StronaStart}} i jego pokrewnych oraz do mojego ustawienia skórki vector-2022, która jest w mojej przestrzeni użytkownika. Dziękuję za spełnienie mojej prośby. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 19:23, 27 maj 2022 (CEST) == Aktualizacja przepełnienia scrollbarów i implementacja sticky == {{Ping|Wargo}} Czy mógłbyś uwzględnić na stronie {{LinkKomunikat2|Common.js}} część mojej strony, która jest po sekwencji /**/, będąca na stronie {{LinkUżytkownik2|Persino/common.js}}. W przypadku pierwszego algorytmu, dodałem tam klasy {{Code|mw-overflow-x}} i {{Code|mw-overflow-y}}, które ten algorytm rozpoznaje, i dla nich liczy, czy nastąpiło to właśnie przepełnienie. A wcześniej liczyło dla wszystkich znaczników na stronie, co spowalniało całą stronę. Tam, gdzie, ważne jest liczenie przepełnienie wstawiłem {{Code|mw-overflow-x}}, czy {{Code|mw-overflow-y}}, czyli algorytm ten tam powinien działać, co można sprawdzić na stronie głównej tego projektu ({{NAZWASERWISU|link=tak}}). Drugi algorytm jest rozszerzenie właściwości {{Code|position:sticky}}, który on nie działa, gdy choćby jeden z rodziców jest z nie {{Code|overflow:visible}}, ale z {{Code|overflow}}, a ja zrobiłem, że jednak zaczeło działać, a ja tak to zrobiłem: {{Code|position:sticky}} zastąpiłem {{Code|position:absolute}}, w tym znaczników ustawiam {{Code|mw-sticky-y}} (przesuw w pionie) lub {{Code|mw-sticky-x}} (przesuw w poziomie), wtedy ten algorytm JavaScript działa tak, że pudełko przesuwa się od pewnej granicy do pewnej, ale nigdy nie wychodzi poza te granice, czyli działa podobnie jak {{Code|position:sticky}}. Dziękuję za spełnienie mojej prośby. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 12:41, 9 lip 2022 (CEST) ==Aktualizacja skryptów na {{LinkKomunikat2|common.js}} z {{LinkUżytkownik2|Persino/common.js}}== {{Ping|Wargo}} Czy mógłbyś zaktualizować kod na stronie {{LinkKomunikat2|common.js}} ze strony {{LinkUżytkownik2|Persino/common.js}} pod znakiem {{Code|/**/}}. Zdefiniowałem przestrzeń nazw {{Code|Common}} definicją: {{Pre|var Common{{=}}new Array();}} Prawie wszystkie funkcje ze strony {{LinkKomunikat2|common.js}} przeniosłem do tej przestrzeni na stronie {{LinkUżytkownik2|Persino/common.js}} (tutaj wszystkie funkcje są w przestrzeni {{Code|Common}}). Rozwinąłem funkcję {{Code|Common.ScrollBarOverflow}}, {{Code|Common.StickyXY}} i {{Code|Common.OptimalXY}}. Napisałem od nowa funkcje: {{Code|Common.RamkiTableIDiv}} i {{Code|Common.ZdarzeniaDodatkoweFunkcyjneXY}} oraz funkcję do obsługi szablonu {{s|StronaStart}} i jego pokrewnych książkowych z definiowałem w postaci: {{Code|Common.StronaStart}}. Co oznaczają te funkcje: * {{Code|Common.ScrollBarOverflow}} - do generowania pewnych klas, które służą do obsługi pudełka z paskami przewijania, * {{Code|Common.StickyXY}} - aktualizacja funkcji {{Code|position:sticky}}, tam gdzie go nie można go użyć, do używamy tej funkcji, * {{Code|Common.OptimalXY}} - do obsługi boksów na stronach z użytymi szablonami stronicowymi książkowymi otwierającymi i zamykającymi, * {{Code|Common.RamkiTableIDiv}} - dodaje dalsze funkcje przy przyciskach tabel i ramek, nawigacyjnych, * {{Code|Common.ZdarzeniaDodatkoweFunkcyjneXY}} - dodaje zdarzenia do obsługi funkcji: {{Code|Common.StickyXY}} i {{Code|Common.OptimalXY}}, * {{Code|Common.StronaStart}} - służy do obsługi spisu treści i boksów szablonu {{s|StronaStart}}. Na stronach podręcznikowych boksy i spisy treści są responsywne według moich ustawień, a dla wszystkich użytkowników będą responsywne po zaktualizowaniu strony {{LinkKomunikat2|common.js}} przy pomocy {{LinkUżytkownik2|Persino/common.js}}. ---- Proszę o pilną reakcję i zrealizowanie mojej prośby. Z góry dziękuję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 15:55, 3 sie 2022 (CEST) :Czy coś jest do usunięcia z obecnego common.js? Tj. czy coś stamtąd mam tym zastąpić? [[Wikipedysta:Wargo|Wargo]] ([[Dyskusja wikipedysty:Wargo|dyskusja]]) 20:55, 7 sie 2022 (CEST) ::{{Ping|Wargo}}Właśnie masz zastąpić nową wersją z pod /**/ z: {{LinkUżytkownik2|Persino/common.js}}, zastępując całą zawartość strony w: {{LinkKomunikat2|common.js}}. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 21:04, 7 sie 2022 (CEST) :::{{Ping|Wargo}} Już możesz zastępować, wszystko gotowe! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 21:39, 7 sie 2022 (CEST) ===Ostatnia poprawka=== {{Ping|Wargo}}Czy mógłbyś linijkę kodu: {{Pre|var top_ab{{=}}rect_rodzic[top]-margintop; var bottom_ab{{=}}(wys-rect_rodzic[bottom])-marginbottom; }} poprawić na: {{Pre|var top_ab{{=}}rect_rodzic[top]; var bottom_ab{{=}}(wys-rect_rodzic[bottom]); }} w funkcji: {{Code|Common.StickyXY}}, w {{LinkKomunikat2|common.js}} według {{LinkUżytkownik2|Persino/common.js}}. Tj. to linijka: 481-482. Z góry dziękuję za spełnienie mojej prośby. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 09:51, 8 sie 2022 (CEST) 24ec4oc6v4xthwi76r3x8y189y8u5us 437184 437179 2022-08-08T10:58:54Z Persino 2851 /* Ostatnia poprawka */ wikitext text/x-wiki <noinclude>__LINKNOWEJSEKCJI__ [[Kategoria:Księga próśb i zadań]]</noinclude> {{fmbox|tekst=UWAGA: Nowe zgłoszenia o innym temacie niż to co dotyczy [[Wikibooks:Prośby do administratorów interfejsu/Zgłoszenia]] lub łamiące zasady [[Wikibooks:Wikietykieta|Wikietykiety]] mogą być bezwarunkowo wycofywane z tej strony}} <!-- Nowe zgłoszenia wstawiaj poniżej tej linii. Powyżej tej linii nic nie usuwaj. Nie usuwaj tej linii --> == Usunięcie wymuszenia białego tła w tabelach. == Zwracam się z prośbą o usunięcie [[MediaWiki:Common.css]] fragmentu <syntaxhighlight lang="css"> } + table.wikitable td, + table.prettytable td { + background: #f9f9f9; </syntaxhighlight> Fragment ten wymusza białe tło w tabelach, co uniemożliwia zastosowanie kolorowych komórek. Takowe bardzo by się przydały np. w opracowywanym przeze [[Zbiór zadań maturalnych/Biologia|Zbiorze zadań maturalnych z Biologii]] jak np. tu: [[:Kategoria:Zbiór zadań maturalnych/podstawa programowa 2017/Biologia/Zakres rozszerzony/Treści nauczania/II/3/1]]. Póki co posiłkuję się obramowaniem, chciałbym jednak docelowo zastosować kolorowanie komórek. Z góry dziękuję za rozpatrzenie mojej prośby. [[Wikipedysta:Superjurek|Superjurek]] ([[Dyskusja wikipedysty:Superjurek|dyskusja]]) 22:42, 16 kwi 2021 (CEST) ----- {{Ping|Superjurek}}Spróbuj użyć zapisu, np.: <syntaxhighlight lang="css"> background-color: blue !important; color:white !important; </syntaxhighlight> zamiast: <syntaxhighlight lang="css"> background-color: blue; color:white; </syntaxhighlight> to powinno naprawić cały problem! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 21:05, 27 maj 2022 (CEST) ==Wstawianie kodu do {{LinkKomunikat2|Common.js}}== Czy mógłbyś wsadzić do tej strony {{Code|.js}} kod: <syntaxhighlight lang="JavaScript"> function WyswietlStronyKsiazki(){ function WikikodTitle(data,tabs,titles,tabstrona){ var title=data.parse.title; var wikikod=data.parse.text['*']; var elements=tabstrona[title]; for(var q in elements){ elements[q].innerHTML=wikikod; var a=elements[q].getElementsByTagName('a'); if((a!==null)&&(a.length>0)){ var lena=a.length; for(var i=0;i<lena;++i){ var href=a[i].getAttribute('href'); if(href!==null){ var re=/^[^\?]+\?[^&]+=[^&]*&?/g; if(!re.test(href)){ var re2=/#/g; var s=href.search(re2); if(s!=-1){ var re=/^\/wiki\//g; if(re.test(href)){ var href2=href.substring(6,s) href2=decodeURI(href2); href2=href2.replace(/[_\s]+/g," "); for(var s=0;s<titles.length;s++){ var strona=titles[s]; if(href2==strona){ var href3=href.replace(/^[^#]*/g,""); var a_toc=a[i]; a_toc.setAttribute('href',encodeURI(href3)); a_toc.setAttribute("title",""); } } } }else{ var re=/^\/wiki\//g; if(re.test(href)){ var hrefv=href.replace(re,""); var hrefs=decodeURI(hrefv); hrefs=hrefs.replace(/[_\s]+/g," "); for(var s=0;s<titles.length;s++){ var strona=titles[s]; if(hrefs==strona){ var hrefs2=hrefv.replace(/^[^\/]*\//g,""); var a_toc=a[i]; a_toc.setAttribute('href','#'+hrefs2); a_toc.setAttribute("title",""); } } } } } } } } } var tab_toc=new Array("toc","toc_spis"); for(var d=0;d<tab_toc.length;++d){ var toc=document.getElementsByClassName(tab_toc[d]); if((toc!==null)&&(toc.length>0)){ for(var q in elements){ var num=new Array(); var v=0; for(var e=0;e<tabs.length;++e){ if(tabs[e]==title){ v+=1; if(parseInt(q)+1==v){ num.push(parseInt(e)+1); break; } } } var headline=elements[q].getElementsByClassName("mw-headline"); if((headline!==null)&&(headline.length>0)){ var ulozenie=0; var ostanie=0; var len=headline.length; var naglowek=""; var liczba_ulozenia_w_menu_spisu_tresci=1; var h_number=1; for (var k=0;k<len;++k){ var element2=headline[k]; var nag=element2.innerHTML; var nag2=element2.getAttribute('id'); var h=element2.parentNode.tagName; var h_numer=h.replace(/^[^\d]+/g,""); h_numer=parseInt(h_numer) if((ulozenie==0)||(ulozenie>=h_numer)){ ulozenie=h_numer-1; }else { if(ostatnie+1<h_numer-ulozenie){ ulozenie=h_numer-ostatnie-1; } } ostatnie=h_numer-ulozenie; h_numer=h_numer-ulozenie; if(k==0){ num.push(1); var nag="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext\">"+nag+"</span>"; naglowek+="<ul><li><a href=\"#"+nag2+"\">"+nag+"</a>"; }else{ if(h_numer==liczba_ulozenia_w_menu_spisu_tresci){ num[num.length-1]+=1; var nag="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext\">"+nag+"</span>"; naglowek+="</li><li><a href=\"#"+nag2+"\">"+nag+"</a>"; }else{ if(h_numer>liczba_ulozenia_w_menu_spisu_tresci){ num.push(1); var nag="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext\">"+nag+"</span>"; naglowek+="<ul><li><a href=\"#"+nag2+"\">"+nag+"</a>"; liczba_ulozenia_w_menu_spisu_tresci=h_numer; }else{ if(h_numer<liczba_ulozenia_w_menu_spisu_tresci){ num.splice(num.length-liczba_ulozenia_w_menu_spisu_tresci+h_numer,liczba_ulozenia_w_menu_spisu_tresci-h_numer); num[num.length-1]+=1; var nag="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext\">"+nag+"</span>"; naglowek+=('</li></ul>'.repeat(liczba_ulozenia_w_menu_spisu_tresci-h_numer))+"</li><li><a href=\"#"+nag2+"\">"+nag+"</a>"; liczba_ulozenia_w_menu_spisu_tresci=h_numer; } } } } } if(naglowek!=""){ naglowek+=('</li></ul>'.repeat(liczba_ulozenia_w_menu_spisu_tresci)); for(var b=0;b<toc.length;++b){ var a2=toc[b].getElementsByTagName('a'); if((a2!=null)&&(a2.length>0)){ for(var y=0;y<a2.length;++y){ var parent=a2[y].parentNode; var href=a2[y].getAttribute('href'); href=href.replace(/^#/g,""); var title2=title.replace(/^[^\/]+\//g,""); if(href==title2.replace(/[_ ]+/g,"_")+((q>0)?("_"+(parseInt(q)+1)):"")){ var div=document.createElement('div'); div.innerHTML=naglowek; var links=a2[y].getElementsByClassName('toctext'); if((links!=null)&&(links.length>0)){ var link=links[0].innerHTML; if(link==title2){ parent.appendChild(div.getElementsByTagName('ul')[0]); } } } } } } } } } } } for(var d=0;d<tab_toc.length;++d){ var toc_pos=document.getElementsByClassName(tab_toc[d]); if((toc_pos!==null)&&(toc_pos.length>0)){ for(var w=0;w<toc_pos.length;++w){ var li=toc_pos[w].getElementsByTagName('li'); var poziom; var section=1; for(var z=0;z<li.length;++z){ var parent=li[z].parentNode.parentNode; if(parent!==null){ var klasa=parent.getAttribute('class'); if(klasa!==null){ var poziom=klasa.match(/toclevel-\d+/g); if(poziom!==null){ poziom=parseInt(poziom.toString().match(/\d+$/).toString())+1; }else{ poziom=1; } }else{poziom=1;} }else{poziom=1;} var klasa=li[z].getAttribute('class'); if(klasa!==null){ var czy_section=klasa.match(/tocsection-\d+/); if(czy_section!==null){ klasa=klasa.replace(/tocsection-\d+/g,"tocsection-"+section); li[z].setAttribute('class',klasa); }else{ li[z].classList.add("tocsection-"+section); } var czy_level=klasa.match(/toclevel-\d+/); if(czy_level!==null){ klasa=li[z].getAttribute('class'); klasa=klasa.replace(/toclevel-\d+/g,"toclevel-"+poziom); li[z].setAttribute('class',klasa); }else{ li[z].classList.add("toclevel-"+poziom); } }else{ li[z].setAttribute('class',"toclevel-"+poziom+" tocsection-"+section) } section=section+1; } } } } var headline=document.getElementsByClassName('mw-headline'); if((headline)&&(headline.length>0)){ for(var i=0;i<headline.length;++i){ var c=1; var el=headline[i]; var id0=el.innerHTML; id0=id0.replace(/[_\s]+/g,"_"); id0=id0.replace(/<[^<>]+>/g,""); for(var j=0;j<i;++j){ var el1=headline[j]; var id1=el1.innerHTML; id1=id1.replace(/[_\s]+/g,"_"); id1=id1.replace(/<[^<>]+>/g,""); if(id0==id1){ ++c; } } if(c==1){ el.setAttribute('id',id0); }else{ el.setAttribute('id',id0+"_"+c); } } } var tab_toc=new Array("toc","toc_spis"); for(d=0;d<tab_toc.length;++d){ var toc_pos=document.getElementsByClassName(tab_toc[d]); if((toc_pos!==null)&&(toc_pos.length>0)){ for(var w=0;w<toc_pos.length;++w){ var toc=toc_pos[w]; var a=toc.getElementsByTagName('a'); if((a)&&(a.length>0)){ for(var p=0;p<a.length;++p){ var strona=a[p].getElementsByClassName('toctext')[0].innerHTML.replace(/[_\s]+/g,"_"); strona=strona.replace(/<[^<>]+>/g,""); var c=1; for(var v=0;v<p;++v){ var strona2; strona2=a[v].getElementsByClassName('toctext')[0].innerHTML.replace(/[_\s]+/g,"_"); strona2=strona2.replace(/<[^<>]+>/g,""); if(strona==strona2){ ++c; } } strona=strona.replace(/<[^<>]+>/g,""); if(c==1){ a[p].setAttribute('href',"#"+strona); }else{ a[p].setAttribute('href',"#"+strona+"_"+c); } } } } } } } function StronaSubst(data){ var wikikod=data.parse.text['*']; var elem=document.createElement('div'); elem.innerHTML=wikikod; var klasa_mw_parser_out=elem.getElementsByClassName('mw-parser-output'); var wikikod_wyodrepniony=(((klasa_mw_parser_out)&&(klasa_mw_parser_out.length==1))?(klasa_mw_parser_out[0].innerHTML):wikikod); var czy_wikikod=wikikod_wyodrepniony.match(/^\s*$/g); if(czy_wikikod){return;} var strona_subst="strona_subst"; var tagclass=document.getElementsByClassName(strona_subst); if(tagclass==null){return null;} var liczba_elementow=tagclass.length; if(liczba_elementow==0){return null;} var titles=new Array(); var tabstrona=new Array(); var tabs=new Array(); for (var i=0;i<liczba_elementow;++i){ var element=tagclass[i]; if(element.tagName!="DIV"){return null;} var strona=element.innerHTML; var re = /^[_ ]*$/g; var dopasowanie = re.test(strona); if(dopasowanie){return null;}; strona=strona.replace(/^[_ ]*/g,""); strona=strona.replace(/[_ ]*$/g,""); strona=strona.replace(/[_ ]+/g," "); tabs[i]=strona; var czy=false; for(var d in titles){ if(titles[d]==strona){ czy=true; break; } } if(!czy){ titles[titles.length]=strona; } if(tabstrona[strona]==null){ tabstrona[strona]=new Array(); } var tab=tabstrona[strona]; var tablen=tab.length; tabstrona[strona][tablen]=element; } for ( var p in titles ) { var strona=titles[p]; var api=new mw.Api; api.get({ action: 'parse', format: 'json', prop: 'text', title: strona, text: '{{:'+strona+'}}', disabletoc: true, disablelimitreport: true, contentmodel: 'wikitext' }).done(function(data){ WikikodTitle(data,tabs,titles,tabstrona); }); } } var strona = mw.config.get('wgPageName'); var api=new mw.Api; api.get({ action: 'parse', format: 'json', prop: 'text', title: strona, text: '{{#invoke:StronicowyParser|CzyStronaSubst}}', disabletoc: true, disablelimitreport: true, contentmodel: 'wikitext' }).done(function(data){ StronaSubst(data) }); } $(WyswietlStronyKsiazki); </syntaxhighlight> Ten program {{Code|.js}} znajduje się na stronie: {{LinkUżytkownik2|Persino/common.js}}. Jak wstawisz ten kod do strony {{LinkKomunikat2|Common.js}}, to powinno wtedy zadziałać ładowanie modułów książki, za pomocą JavaScript, na stronie {{LinkUżytkownik2|Persino/Wersja do druku}}. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 09:09, 13 lis 2021 (CET) == Gadżet StronaSubst - dodawanie do listy gadżetów == Mamy sobie kod JavaScript {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} i opis gadżetu {{LinkUżytkownik2|Persino/Gadget-StronaSubst}}, czy mógłbyś przenieść na strony w przestrzeni nazw {{Np|MediaWiki|link=tak}}, i wywołaniu gadżetu w takiej formie jak w {{LinkUżytkownik2|Persino/Gadgets-definition}} przenieść na stronę {{LinkKomunikat2|Gadgets-definition}}. Wtedy strona {{LinkUżytkownik2|Persino/Wersja do druku}} powinna działać! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 14:14, 27 lis 2021 (CET) === Zamienianie kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}} === {{Ping|Wargo}}Chodzi tutaj, że jak będzie link do artykułu w nagłówku, to, żeby nie pojawiało się pole '''[ artykuł | edytuj ]''' zamiast '''[ edytuj ]''' - aktualnie w {{LinkKomunikat2|Gadget-StronaSubst.js}} pole '''[ artykuł | edytuj ]''' pojawia się zawsze zamiast '''[ edytuj ]''', wtedy gdy ma zawartość '''strona_subst''' jest nie pusta, to algorytm jest zakańczany. A jak jest nazwa strony w zawartości div-a '''strona_subst''', a nie link w nagłówku, to wtedy ma się prawo pojawić '''[ artykuł | edytuj ]''' zamiast '''[ edytuj ]'''. Czy mógłbyś wersję {{LinkKomunikat2|Gadget-StronaSubst.js}} zamienić na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}. Z góry dziękuję za rozpatrzenie mojej prośby! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 10:13, 30 lis 2021 (CET) ---- {{Ping|Wargo}} Jeszcze, czy mógłbyś zamienić tekst w {{LinkKomunikat2|Gadget-StronaSubst}} z: {{Pre|(bez sekcji "Spis treści" i "Licencja")}} na {{Pre|(bez sekcji "Spis treści", "Bibliografia" i "Licencja")}} [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 19:18, 1 gru 2021 (CET) === Ostatnia poprawka kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}=== {{Ping|Wargo}}Chodzi tutaj, że algorytm zawiesza się na artykule {{LinkGłówna|Mechanika kwantowa/Mechanika kwantowa}}, to co poprawiłem już tak przestaje być, błąd znikł! Czy mógłbyś dokonać zamianę kodu? Proszę o pilną reakcję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 18:30, 3 gru 2021 (CET) === Miejmy nadzieję, że to jest ostatnia poprawka kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}=== {{Ping|Wargo}}Chodzi tutaj, że algorytm ma błędy JavaScript na stronie, przy danej książce: {{LinkGłówna|Szachy}}, czyli przy artykule: {{LinkGłówna|Szachy/Szachy}} - błąd tylko widać, gdy chcemy zbadać element, moja poprawka usuwa ten błąd! Czy mógłbyś dokonać zamianę kodu? Proszę o pilną reakcję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 15:50, 4 gru 2021 (CET) === Następna poprawka kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}} === {{Ping|Wargo}}Chodzi tutaj, że algorytm nie wyświetla w TOC (wbudowany spis treści) podrozdziałów dla artykułu {{LinkGłówna|Matematyka dla liceum/Matematyka dla liceum}}, moja poprawka usuwa ten błąd. Skrypt porządkuje artykuły według nagłówków na stronie tego artykułu w TOC, a zestaw artykułów, w danek sekcji, wyświetla, również w TOC, je przydzielone do niej. Czy mógłbyś dokonać zamianę kodu? Proszę o pilną reakcję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 14:51, 7 gru 2021 (CET) === Poważne poprawki w {{LinkKomunikat2|Gadget-StronaSubst.js}} na podstawie {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} oraz dodanie i zmiana pewnych gadżetów === {{Ping|Wargo}} Następne poprawki dotyczące wpisu w {{LinkKomunikat2|Gadget-StronaSubst.js}}, co do zauważonych drobnych błędów, czyli mógłbyś dokonać zamiany kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}. Z góry dziękuję. Poza tym wszystko działa, od razu dziękuję! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 19:32, 8 gru 2021 (CET) ---- {{Ping|Wargo}} Jeszcze, czy mógłbyś zamienić tekst w {{LinkKomunikat2|Gadget-StronaSubst}} z: {{Pre|(bez sekcji "Spis treści", "Bibliografia" i "Licencja")}} na {{Pre|(bez sekcji: "Spis treści", "Bibliografia", "Zobacz też", "Inne", "Licencja" i tym podobne)}} Dziękuję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 05:43, 9 gru 2021 (CET) ---- {{Ping|Wargo}} Czy mógłbyś uzupełnić {{LinkKomunikat2|Gadgets-definition}}, według {{LinkUżytkownik2|Persino/Gadgets-definition}} - szczególnie trzeba naprawić odwołanie do gadżetu StronaSubst, i dodać gadżety: {{LinkUżytkownik2|Persino/Gadget-gConfig.js}} (jego opis jest w {{LinkUżytkownik2|Persino/Gadget-gConfig}}), przenosząc go do {{LinkKomunikat2|Gadget-gConfig.js}} (jego opis do {{LinkKomunikat2|Gadget-gConfig}}), a także drugi gadżet dotyczący szablonu {{s|Cytuj}} przenieś z {{LinkUżytkownik2|Persino/Gadget-citation-access-info.js}} (jego opis to {{LinkUżytkownik2|Persino/Gadget-citation-access-info}}) do {{LinkKomunikat2|Gadget-citation-access-info.js}} (a jego opis do {{LinkKomunikat2|Gadget-citation-access-info}}). Gadżet '''gConfig''' potrzebny mi jest do gadżetu {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}}, którego zawartość należy przenieść do {{LinkKomunikat2|Gadget-StronaSubst.js}}, a gadżet {{LinkUżytkownik2|Persino/Gadget-citation-access-info.js}}, potrzebny mi jest do szablonu {{s|Cytuj}} do dymku do pełnej wersji tego szablonu, który należy przenieść do {{LinkKomunikat2|Gadget-citation-access-info.js}}. Proszę o pilną reakcję! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 15:04, 11 gru 2021 (CET) ---- Również proszę o zastąpienie strony komunikatu {{LinkKomunikat2|Gadget-map-toggler.js}} stroną {{LinkUżytkownik2|Persino/Gadget-map-toggler.js}}. Z góry dziękuję! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 18:38, 11 gru 2021 (CET) == Zamiana wartości linkowej i szablonowej == {{Ping|Wargo}}Czy mógłbyś zamienić na stronie: {{LinkUżytkownik2|Rychozol/common.js}}, z wartości: {{Nowiki|[[GNU Free Documentation License|GFDL]]}}, na: {{Nowiki|[[Wikibooks:GNU Free Documentation License|GFDL]]}}, a także na tej samej stronie wartość: {{s|clear}}, na {{s|BrClear}}, ponieważ ze względu na zmianę nazw stron. Z góry dziękuję! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 09:35, 13 gru 2021 (CET) <del>== Dalsze zmiany na stronach gadżetów (pilne) == {{Ping|Wargo}}Czy mógłbyś zainstalować gadżet "Gadget-gConfig", tak jak na stronie {{LinkUżytkownik2|Persino/Gadgets-definition}} (pierwsza linijka) w {{LinkKomunikat2|Gadgets-definition}}, a co do tego, jego kod {{LinkUżytkownik2|Persino/Gadget-gConfig.js}} zainstalować w miejscu {{LinkKomunikat2|Gadget-gConfig.js}} (jego opis jest w {{LinkUżytkownik2|Persino/Gadget-gConfig}}), przenosząc go do {{LinkKomunikat2|Gadget-gConfig.js}} (jego opis do {{LinkKomunikat2|Gadget-gConfig}}). A później zaaktualizuj gadżet {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}, a także zainstalować w miejscu {{LinkKomunikat2|Gadget-Funkcje.js}} gadżet {{LinkUżytkownik2|Persino/Gadget-Funkcje.js}}, a również zaktualizować wpis dla gadżetu StronaSubst tak jak w {{LinkUżytkownik2|Persino/Gadgets-definition}}. A później sprawdzić, czy wszystko działa. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 13:19, 4 lut 2022 (CET)</del> == Przepełnienie scrollbarów, poszczególnych elementów strony, a ustawienia różnych klas, jeżeli takowe istnieją == {{Ping|Wargo}}Czy mógłbyś uwzględnić na stronie {{LinkKomunikat2|Common.js}} część mojej strony, która jest po sekwencji /**/, będąca na stronie {{LinkUżytkownik2|Persino/common.js}}. Ten skrypt sprawdza, czy nastąpiło przepełnienie elementów strony dokumentu HTML Wikibooks, a jeżeli nastąpiło, to następuje ustawienie tam odpowiednich klas, a jeżeli ono znikło, to usunięcie tych klas. Ten skrypt jest mi potrzebny do szablonu {{s|StronaStart}} i jego pokrewnych oraz do mojego ustawienia skórki vector-2022, która jest w mojej przestrzeni użytkownika. Dziękuję za spełnienie mojej prośby. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 19:23, 27 maj 2022 (CEST) == Aktualizacja przepełnienia scrollbarów i implementacja sticky == {{Ping|Wargo}} Czy mógłbyś uwzględnić na stronie {{LinkKomunikat2|Common.js}} część mojej strony, która jest po sekwencji /**/, będąca na stronie {{LinkUżytkownik2|Persino/common.js}}. W przypadku pierwszego algorytmu, dodałem tam klasy {{Code|mw-overflow-x}} i {{Code|mw-overflow-y}}, które ten algorytm rozpoznaje, i dla nich liczy, czy nastąpiło to właśnie przepełnienie. A wcześniej liczyło dla wszystkich znaczników na stronie, co spowalniało całą stronę. Tam, gdzie, ważne jest liczenie przepełnienie wstawiłem {{Code|mw-overflow-x}}, czy {{Code|mw-overflow-y}}, czyli algorytm ten tam powinien działać, co można sprawdzić na stronie głównej tego projektu ({{NAZWASERWISU|link=tak}}). Drugi algorytm jest rozszerzenie właściwości {{Code|position:sticky}}, który on nie działa, gdy choćby jeden z rodziców jest z nie {{Code|overflow:visible}}, ale z {{Code|overflow}}, a ja zrobiłem, że jednak zaczeło działać, a ja tak to zrobiłem: {{Code|position:sticky}} zastąpiłem {{Code|position:absolute}}, w tym znaczników ustawiam {{Code|mw-sticky-y}} (przesuw w pionie) lub {{Code|mw-sticky-x}} (przesuw w poziomie), wtedy ten algorytm JavaScript działa tak, że pudełko przesuwa się od pewnej granicy do pewnej, ale nigdy nie wychodzi poza te granice, czyli działa podobnie jak {{Code|position:sticky}}. Dziękuję za spełnienie mojej prośby. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 12:41, 9 lip 2022 (CEST) ==Aktualizacja skryptów na {{LinkKomunikat2|common.js}} z {{LinkUżytkownik2|Persino/common.js}}== {{Ping|Wargo}} Czy mógłbyś zaktualizować kod na stronie {{LinkKomunikat2|common.js}} ze strony {{LinkUżytkownik2|Persino/common.js}} pod znakiem {{Code|/**/}}. Zdefiniowałem przestrzeń nazw {{Code|Common}} definicją: {{Pre|var Common{{=}}new Array();}} Prawie wszystkie funkcje ze strony {{LinkKomunikat2|common.js}} przeniosłem do tej przestrzeni na stronie {{LinkUżytkownik2|Persino/common.js}} (tutaj wszystkie funkcje są w przestrzeni {{Code|Common}}). Rozwinąłem funkcję {{Code|Common.ScrollBarOverflow}}, {{Code|Common.StickyXY}} i {{Code|Common.OptimalXY}}. Napisałem od nowa funkcje: {{Code|Common.RamkiTableIDiv}} i {{Code|Common.ZdarzeniaDodatkoweFunkcyjneXY}} oraz funkcję do obsługi szablonu {{s|StronaStart}} i jego pokrewnych książkowych z definiowałem w postaci: {{Code|Common.StronaStart}}. Co oznaczają te funkcje: * {{Code|Common.ScrollBarOverflow}} - do generowania pewnych klas, które służą do obsługi pudełka z paskami przewijania, * {{Code|Common.StickyXY}} - aktualizacja funkcji {{Code|position:sticky}}, tam gdzie go nie można go użyć, do używamy tej funkcji, * {{Code|Common.OptimalXY}} - do obsługi boksów na stronach z użytymi szablonami stronicowymi książkowymi otwierającymi i zamykającymi, * {{Code|Common.RamkiTableIDiv}} - dodaje dalsze funkcje przy przyciskach tabel i ramek, nawigacyjnych, * {{Code|Common.ZdarzeniaDodatkoweFunkcyjneXY}} - dodaje zdarzenia do obsługi funkcji: {{Code|Common.StickyXY}} i {{Code|Common.OptimalXY}}, * {{Code|Common.StronaStart}} - służy do obsługi spisu treści i boksów szablonu {{s|StronaStart}}. Na stronach podręcznikowych boksy i spisy treści są responsywne według moich ustawień, a dla wszystkich użytkowników będą responsywne po zaktualizowaniu strony {{LinkKomunikat2|common.js}} przy pomocy {{LinkUżytkownik2|Persino/common.js}}. ---- Proszę o pilną reakcję i zrealizowanie mojej prośby. Z góry dziękuję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 15:55, 3 sie 2022 (CEST) :Czy coś jest do usunięcia z obecnego common.js? Tj. czy coś stamtąd mam tym zastąpić? [[Wikipedysta:Wargo|Wargo]] ([[Dyskusja wikipedysty:Wargo|dyskusja]]) 20:55, 7 sie 2022 (CEST) ::{{Ping|Wargo}}Właśnie masz zastąpić nową wersją z pod /**/ z: {{LinkUżytkownik2|Persino/common.js}}, zastępując całą zawartość strony w: {{LinkKomunikat2|common.js}}. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 21:04, 7 sie 2022 (CEST) :::{{Ping|Wargo}} Już możesz zastępować, wszystko gotowe! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 21:39, 7 sie 2022 (CEST) ===Ostatnia poprawka=== {{Ping|Wargo}}Czy mógłbyś linijkę kodu: {{Pre|var top_ab{{=}}rect_rodzic[top]-margintop; var bottom_ab{{=}}(wys-rect_rodzic[bottom])-marginbottom; }} poprawić na: {{Pre|var top_ab{{=}}rect_rodzic[top]; var bottom_ab{{=}}(wys-rect_rodzic[bottom]); }} w funkcji: {{Code|Common.StickyXY}}, w {{LinkKomunikat2|common.js}} według {{LinkUżytkownik2|Persino/common.js}}. Tj. to linijka: 481-482. Z góry dziękuję za spełnienie mojej prośby. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 09:51, 8 sie 2022 (CEST) ==Miejmy nadzieję, że ostatnia poprawka na stronie {{LinkKomunikat2|common.js}}== {{Ping|Wargo}}Czy mógłbyś linie kodu w linii 177 i 183 na stronie {{LinkKomunikat2|common.js}} według {{LinkUżytkownik2|Persino/common.js}} poprawić według schematu: {{Pre |collapseTable( i ); }} zamienić na: {{Pre |Common.collapseTable( i ); }} Poprawka jest ważna, bo ramki nawigacyjne, na stronie głównej i gdzieś indziej, nie chcą się kolapsować, a po tej operacji już będą się tak zachowywać! Z góry dziękuję za spełnienie mojej prośby. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 12:58, 8 sie 2022 (CEST) 0c4a5qsg1jb44jur63cniizwgt9biu0 437185 437184 2022-08-08T10:59:09Z Persino 2851 /* Miejmy nadzieję, że ostatnia poprawka na stronie {{LinkKomunikat2|common.js}} */ wikitext text/x-wiki <noinclude>__LINKNOWEJSEKCJI__ [[Kategoria:Księga próśb i zadań]]</noinclude> {{fmbox|tekst=UWAGA: Nowe zgłoszenia o innym temacie niż to co dotyczy [[Wikibooks:Prośby do administratorów interfejsu/Zgłoszenia]] lub łamiące zasady [[Wikibooks:Wikietykieta|Wikietykiety]] mogą być bezwarunkowo wycofywane z tej strony}} <!-- Nowe zgłoszenia wstawiaj poniżej tej linii. Powyżej tej linii nic nie usuwaj. Nie usuwaj tej linii --> == Usunięcie wymuszenia białego tła w tabelach. == Zwracam się z prośbą o usunięcie [[MediaWiki:Common.css]] fragmentu <syntaxhighlight lang="css"> } + table.wikitable td, + table.prettytable td { + background: #f9f9f9; </syntaxhighlight> Fragment ten wymusza białe tło w tabelach, co uniemożliwia zastosowanie kolorowych komórek. Takowe bardzo by się przydały np. w opracowywanym przeze [[Zbiór zadań maturalnych/Biologia|Zbiorze zadań maturalnych z Biologii]] jak np. tu: [[:Kategoria:Zbiór zadań maturalnych/podstawa programowa 2017/Biologia/Zakres rozszerzony/Treści nauczania/II/3/1]]. Póki co posiłkuję się obramowaniem, chciałbym jednak docelowo zastosować kolorowanie komórek. Z góry dziękuję za rozpatrzenie mojej prośby. [[Wikipedysta:Superjurek|Superjurek]] ([[Dyskusja wikipedysty:Superjurek|dyskusja]]) 22:42, 16 kwi 2021 (CEST) ----- {{Ping|Superjurek}}Spróbuj użyć zapisu, np.: <syntaxhighlight lang="css"> background-color: blue !important; color:white !important; </syntaxhighlight> zamiast: <syntaxhighlight lang="css"> background-color: blue; color:white; </syntaxhighlight> to powinno naprawić cały problem! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 21:05, 27 maj 2022 (CEST) ==Wstawianie kodu do {{LinkKomunikat2|Common.js}}== Czy mógłbyś wsadzić do tej strony {{Code|.js}} kod: <syntaxhighlight lang="JavaScript"> function WyswietlStronyKsiazki(){ function WikikodTitle(data,tabs,titles,tabstrona){ var title=data.parse.title; var wikikod=data.parse.text['*']; var elements=tabstrona[title]; for(var q in elements){ elements[q].innerHTML=wikikod; var a=elements[q].getElementsByTagName('a'); if((a!==null)&&(a.length>0)){ var lena=a.length; for(var i=0;i<lena;++i){ var href=a[i].getAttribute('href'); if(href!==null){ var re=/^[^\?]+\?[^&]+=[^&]*&?/g; if(!re.test(href)){ var re2=/#/g; var s=href.search(re2); if(s!=-1){ var re=/^\/wiki\//g; if(re.test(href)){ var href2=href.substring(6,s) href2=decodeURI(href2); href2=href2.replace(/[_\s]+/g," "); for(var s=0;s<titles.length;s++){ var strona=titles[s]; if(href2==strona){ var href3=href.replace(/^[^#]*/g,""); var a_toc=a[i]; a_toc.setAttribute('href',encodeURI(href3)); a_toc.setAttribute("title",""); } } } }else{ var re=/^\/wiki\//g; if(re.test(href)){ var hrefv=href.replace(re,""); var hrefs=decodeURI(hrefv); hrefs=hrefs.replace(/[_\s]+/g," "); for(var s=0;s<titles.length;s++){ var strona=titles[s]; if(hrefs==strona){ var hrefs2=hrefv.replace(/^[^\/]*\//g,""); var a_toc=a[i]; a_toc.setAttribute('href','#'+hrefs2); a_toc.setAttribute("title",""); } } } } } } } } } var tab_toc=new Array("toc","toc_spis"); for(var d=0;d<tab_toc.length;++d){ var toc=document.getElementsByClassName(tab_toc[d]); if((toc!==null)&&(toc.length>0)){ for(var q in elements){ var num=new Array(); var v=0; for(var e=0;e<tabs.length;++e){ if(tabs[e]==title){ v+=1; if(parseInt(q)+1==v){ num.push(parseInt(e)+1); break; } } } var headline=elements[q].getElementsByClassName("mw-headline"); if((headline!==null)&&(headline.length>0)){ var ulozenie=0; var ostanie=0; var len=headline.length; var naglowek=""; var liczba_ulozenia_w_menu_spisu_tresci=1; var h_number=1; for (var k=0;k<len;++k){ var element2=headline[k]; var nag=element2.innerHTML; var nag2=element2.getAttribute('id'); var h=element2.parentNode.tagName; var h_numer=h.replace(/^[^\d]+/g,""); h_numer=parseInt(h_numer) if((ulozenie==0)||(ulozenie>=h_numer)){ ulozenie=h_numer-1; }else { if(ostatnie+1<h_numer-ulozenie){ ulozenie=h_numer-ostatnie-1; } } ostatnie=h_numer-ulozenie; h_numer=h_numer-ulozenie; if(k==0){ num.push(1); var nag="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext\">"+nag+"</span>"; naglowek+="<ul><li><a href=\"#"+nag2+"\">"+nag+"</a>"; }else{ if(h_numer==liczba_ulozenia_w_menu_spisu_tresci){ num[num.length-1]+=1; var nag="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext\">"+nag+"</span>"; naglowek+="</li><li><a href=\"#"+nag2+"\">"+nag+"</a>"; }else{ if(h_numer>liczba_ulozenia_w_menu_spisu_tresci){ num.push(1); var nag="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext\">"+nag+"</span>"; naglowek+="<ul><li><a href=\"#"+nag2+"\">"+nag+"</a>"; liczba_ulozenia_w_menu_spisu_tresci=h_numer; }else{ if(h_numer<liczba_ulozenia_w_menu_spisu_tresci){ num.splice(num.length-liczba_ulozenia_w_menu_spisu_tresci+h_numer,liczba_ulozenia_w_menu_spisu_tresci-h_numer); num[num.length-1]+=1; var nag="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext\">"+nag+"</span>"; naglowek+=('</li></ul>'.repeat(liczba_ulozenia_w_menu_spisu_tresci-h_numer))+"</li><li><a href=\"#"+nag2+"\">"+nag+"</a>"; liczba_ulozenia_w_menu_spisu_tresci=h_numer; } } } } } if(naglowek!=""){ naglowek+=('</li></ul>'.repeat(liczba_ulozenia_w_menu_spisu_tresci)); for(var b=0;b<toc.length;++b){ var a2=toc[b].getElementsByTagName('a'); if((a2!=null)&&(a2.length>0)){ for(var y=0;y<a2.length;++y){ var parent=a2[y].parentNode; var href=a2[y].getAttribute('href'); href=href.replace(/^#/g,""); var title2=title.replace(/^[^\/]+\//g,""); if(href==title2.replace(/[_ ]+/g,"_")+((q>0)?("_"+(parseInt(q)+1)):"")){ var div=document.createElement('div'); div.innerHTML=naglowek; var links=a2[y].getElementsByClassName('toctext'); if((links!=null)&&(links.length>0)){ var link=links[0].innerHTML; if(link==title2){ parent.appendChild(div.getElementsByTagName('ul')[0]); } } } } } } } } } } } for(var d=0;d<tab_toc.length;++d){ var toc_pos=document.getElementsByClassName(tab_toc[d]); if((toc_pos!==null)&&(toc_pos.length>0)){ for(var w=0;w<toc_pos.length;++w){ var li=toc_pos[w].getElementsByTagName('li'); var poziom; var section=1; for(var z=0;z<li.length;++z){ var parent=li[z].parentNode.parentNode; if(parent!==null){ var klasa=parent.getAttribute('class'); if(klasa!==null){ var poziom=klasa.match(/toclevel-\d+/g); if(poziom!==null){ poziom=parseInt(poziom.toString().match(/\d+$/).toString())+1; }else{ poziom=1; } }else{poziom=1;} }else{poziom=1;} var klasa=li[z].getAttribute('class'); if(klasa!==null){ var czy_section=klasa.match(/tocsection-\d+/); if(czy_section!==null){ klasa=klasa.replace(/tocsection-\d+/g,"tocsection-"+section); li[z].setAttribute('class',klasa); }else{ li[z].classList.add("tocsection-"+section); } var czy_level=klasa.match(/toclevel-\d+/); if(czy_level!==null){ klasa=li[z].getAttribute('class'); klasa=klasa.replace(/toclevel-\d+/g,"toclevel-"+poziom); li[z].setAttribute('class',klasa); }else{ li[z].classList.add("toclevel-"+poziom); } }else{ li[z].setAttribute('class',"toclevel-"+poziom+" tocsection-"+section) } section=section+1; } } } } var headline=document.getElementsByClassName('mw-headline'); if((headline)&&(headline.length>0)){ for(var i=0;i<headline.length;++i){ var c=1; var el=headline[i]; var id0=el.innerHTML; id0=id0.replace(/[_\s]+/g,"_"); id0=id0.replace(/<[^<>]+>/g,""); for(var j=0;j<i;++j){ var el1=headline[j]; var id1=el1.innerHTML; id1=id1.replace(/[_\s]+/g,"_"); id1=id1.replace(/<[^<>]+>/g,""); if(id0==id1){ ++c; } } if(c==1){ el.setAttribute('id',id0); }else{ el.setAttribute('id',id0+"_"+c); } } } var tab_toc=new Array("toc","toc_spis"); for(d=0;d<tab_toc.length;++d){ var toc_pos=document.getElementsByClassName(tab_toc[d]); if((toc_pos!==null)&&(toc_pos.length>0)){ for(var w=0;w<toc_pos.length;++w){ var toc=toc_pos[w]; var a=toc.getElementsByTagName('a'); if((a)&&(a.length>0)){ for(var p=0;p<a.length;++p){ var strona=a[p].getElementsByClassName('toctext')[0].innerHTML.replace(/[_\s]+/g,"_"); strona=strona.replace(/<[^<>]+>/g,""); var c=1; for(var v=0;v<p;++v){ var strona2; strona2=a[v].getElementsByClassName('toctext')[0].innerHTML.replace(/[_\s]+/g,"_"); strona2=strona2.replace(/<[^<>]+>/g,""); if(strona==strona2){ ++c; } } strona=strona.replace(/<[^<>]+>/g,""); if(c==1){ a[p].setAttribute('href',"#"+strona); }else{ a[p].setAttribute('href',"#"+strona+"_"+c); } } } } } } } function StronaSubst(data){ var wikikod=data.parse.text['*']; var elem=document.createElement('div'); elem.innerHTML=wikikod; var klasa_mw_parser_out=elem.getElementsByClassName('mw-parser-output'); var wikikod_wyodrepniony=(((klasa_mw_parser_out)&&(klasa_mw_parser_out.length==1))?(klasa_mw_parser_out[0].innerHTML):wikikod); var czy_wikikod=wikikod_wyodrepniony.match(/^\s*$/g); if(czy_wikikod){return;} var strona_subst="strona_subst"; var tagclass=document.getElementsByClassName(strona_subst); if(tagclass==null){return null;} var liczba_elementow=tagclass.length; if(liczba_elementow==0){return null;} var titles=new Array(); var tabstrona=new Array(); var tabs=new Array(); for (var i=0;i<liczba_elementow;++i){ var element=tagclass[i]; if(element.tagName!="DIV"){return null;} var strona=element.innerHTML; var re = /^[_ ]*$/g; var dopasowanie = re.test(strona); if(dopasowanie){return null;}; strona=strona.replace(/^[_ ]*/g,""); strona=strona.replace(/[_ ]*$/g,""); strona=strona.replace(/[_ ]+/g," "); tabs[i]=strona; var czy=false; for(var d in titles){ if(titles[d]==strona){ czy=true; break; } } if(!czy){ titles[titles.length]=strona; } if(tabstrona[strona]==null){ tabstrona[strona]=new Array(); } var tab=tabstrona[strona]; var tablen=tab.length; tabstrona[strona][tablen]=element; } for ( var p in titles ) { var strona=titles[p]; var api=new mw.Api; api.get({ action: 'parse', format: 'json', prop: 'text', title: strona, text: '{{:'+strona+'}}', disabletoc: true, disablelimitreport: true, contentmodel: 'wikitext' }).done(function(data){ WikikodTitle(data,tabs,titles,tabstrona); }); } } var strona = mw.config.get('wgPageName'); var api=new mw.Api; api.get({ action: 'parse', format: 'json', prop: 'text', title: strona, text: '{{#invoke:StronicowyParser|CzyStronaSubst}}', disabletoc: true, disablelimitreport: true, contentmodel: 'wikitext' }).done(function(data){ StronaSubst(data) }); } $(WyswietlStronyKsiazki); </syntaxhighlight> Ten program {{Code|.js}} znajduje się na stronie: {{LinkUżytkownik2|Persino/common.js}}. Jak wstawisz ten kod do strony {{LinkKomunikat2|Common.js}}, to powinno wtedy zadziałać ładowanie modułów książki, za pomocą JavaScript, na stronie {{LinkUżytkownik2|Persino/Wersja do druku}}. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 09:09, 13 lis 2021 (CET) == Gadżet StronaSubst - dodawanie do listy gadżetów == Mamy sobie kod JavaScript {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} i opis gadżetu {{LinkUżytkownik2|Persino/Gadget-StronaSubst}}, czy mógłbyś przenieść na strony w przestrzeni nazw {{Np|MediaWiki|link=tak}}, i wywołaniu gadżetu w takiej formie jak w {{LinkUżytkownik2|Persino/Gadgets-definition}} przenieść na stronę {{LinkKomunikat2|Gadgets-definition}}. Wtedy strona {{LinkUżytkownik2|Persino/Wersja do druku}} powinna działać! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 14:14, 27 lis 2021 (CET) === Zamienianie kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}} === {{Ping|Wargo}}Chodzi tutaj, że jak będzie link do artykułu w nagłówku, to, żeby nie pojawiało się pole '''[ artykuł | edytuj ]''' zamiast '''[ edytuj ]''' - aktualnie w {{LinkKomunikat2|Gadget-StronaSubst.js}} pole '''[ artykuł | edytuj ]''' pojawia się zawsze zamiast '''[ edytuj ]''', wtedy gdy ma zawartość '''strona_subst''' jest nie pusta, to algorytm jest zakańczany. A jak jest nazwa strony w zawartości div-a '''strona_subst''', a nie link w nagłówku, to wtedy ma się prawo pojawić '''[ artykuł | edytuj ]''' zamiast '''[ edytuj ]'''. Czy mógłbyś wersję {{LinkKomunikat2|Gadget-StronaSubst.js}} zamienić na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}. Z góry dziękuję za rozpatrzenie mojej prośby! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 10:13, 30 lis 2021 (CET) ---- {{Ping|Wargo}} Jeszcze, czy mógłbyś zamienić tekst w {{LinkKomunikat2|Gadget-StronaSubst}} z: {{Pre|(bez sekcji "Spis treści" i "Licencja")}} na {{Pre|(bez sekcji "Spis treści", "Bibliografia" i "Licencja")}} [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 19:18, 1 gru 2021 (CET) === Ostatnia poprawka kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}=== {{Ping|Wargo}}Chodzi tutaj, że algorytm zawiesza się na artykule {{LinkGłówna|Mechanika kwantowa/Mechanika kwantowa}}, to co poprawiłem już tak przestaje być, błąd znikł! Czy mógłbyś dokonać zamianę kodu? Proszę o pilną reakcję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 18:30, 3 gru 2021 (CET) === Miejmy nadzieję, że to jest ostatnia poprawka kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}=== {{Ping|Wargo}}Chodzi tutaj, że algorytm ma błędy JavaScript na stronie, przy danej książce: {{LinkGłówna|Szachy}}, czyli przy artykule: {{LinkGłówna|Szachy/Szachy}} - błąd tylko widać, gdy chcemy zbadać element, moja poprawka usuwa ten błąd! Czy mógłbyś dokonać zamianę kodu? Proszę o pilną reakcję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 15:50, 4 gru 2021 (CET) === Następna poprawka kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}} === {{Ping|Wargo}}Chodzi tutaj, że algorytm nie wyświetla w TOC (wbudowany spis treści) podrozdziałów dla artykułu {{LinkGłówna|Matematyka dla liceum/Matematyka dla liceum}}, moja poprawka usuwa ten błąd. Skrypt porządkuje artykuły według nagłówków na stronie tego artykułu w TOC, a zestaw artykułów, w danek sekcji, wyświetla, również w TOC, je przydzielone do niej. Czy mógłbyś dokonać zamianę kodu? Proszę o pilną reakcję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 14:51, 7 gru 2021 (CET) === Poważne poprawki w {{LinkKomunikat2|Gadget-StronaSubst.js}} na podstawie {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} oraz dodanie i zmiana pewnych gadżetów === {{Ping|Wargo}} Następne poprawki dotyczące wpisu w {{LinkKomunikat2|Gadget-StronaSubst.js}}, co do zauważonych drobnych błędów, czyli mógłbyś dokonać zamiany kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}. Z góry dziękuję. Poza tym wszystko działa, od razu dziękuję! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 19:32, 8 gru 2021 (CET) ---- {{Ping|Wargo}} Jeszcze, czy mógłbyś zamienić tekst w {{LinkKomunikat2|Gadget-StronaSubst}} z: {{Pre|(bez sekcji "Spis treści", "Bibliografia" i "Licencja")}} na {{Pre|(bez sekcji: "Spis treści", "Bibliografia", "Zobacz też", "Inne", "Licencja" i tym podobne)}} Dziękuję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 05:43, 9 gru 2021 (CET) ---- {{Ping|Wargo}} Czy mógłbyś uzupełnić {{LinkKomunikat2|Gadgets-definition}}, według {{LinkUżytkownik2|Persino/Gadgets-definition}} - szczególnie trzeba naprawić odwołanie do gadżetu StronaSubst, i dodać gadżety: {{LinkUżytkownik2|Persino/Gadget-gConfig.js}} (jego opis jest w {{LinkUżytkownik2|Persino/Gadget-gConfig}}), przenosząc go do {{LinkKomunikat2|Gadget-gConfig.js}} (jego opis do {{LinkKomunikat2|Gadget-gConfig}}), a także drugi gadżet dotyczący szablonu {{s|Cytuj}} przenieś z {{LinkUżytkownik2|Persino/Gadget-citation-access-info.js}} (jego opis to {{LinkUżytkownik2|Persino/Gadget-citation-access-info}}) do {{LinkKomunikat2|Gadget-citation-access-info.js}} (a jego opis do {{LinkKomunikat2|Gadget-citation-access-info}}). Gadżet '''gConfig''' potrzebny mi jest do gadżetu {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}}, którego zawartość należy przenieść do {{LinkKomunikat2|Gadget-StronaSubst.js}}, a gadżet {{LinkUżytkownik2|Persino/Gadget-citation-access-info.js}}, potrzebny mi jest do szablonu {{s|Cytuj}} do dymku do pełnej wersji tego szablonu, który należy przenieść do {{LinkKomunikat2|Gadget-citation-access-info.js}}. Proszę o pilną reakcję! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 15:04, 11 gru 2021 (CET) ---- Również proszę o zastąpienie strony komunikatu {{LinkKomunikat2|Gadget-map-toggler.js}} stroną {{LinkUżytkownik2|Persino/Gadget-map-toggler.js}}. Z góry dziękuję! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 18:38, 11 gru 2021 (CET) == Zamiana wartości linkowej i szablonowej == {{Ping|Wargo}}Czy mógłbyś zamienić na stronie: {{LinkUżytkownik2|Rychozol/common.js}}, z wartości: {{Nowiki|[[GNU Free Documentation License|GFDL]]}}, na: {{Nowiki|[[Wikibooks:GNU Free Documentation License|GFDL]]}}, a także na tej samej stronie wartość: {{s|clear}}, na {{s|BrClear}}, ponieważ ze względu na zmianę nazw stron. Z góry dziękuję! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 09:35, 13 gru 2021 (CET) <del>== Dalsze zmiany na stronach gadżetów (pilne) == {{Ping|Wargo}}Czy mógłbyś zainstalować gadżet "Gadget-gConfig", tak jak na stronie {{LinkUżytkownik2|Persino/Gadgets-definition}} (pierwsza linijka) w {{LinkKomunikat2|Gadgets-definition}}, a co do tego, jego kod {{LinkUżytkownik2|Persino/Gadget-gConfig.js}} zainstalować w miejscu {{LinkKomunikat2|Gadget-gConfig.js}} (jego opis jest w {{LinkUżytkownik2|Persino/Gadget-gConfig}}), przenosząc go do {{LinkKomunikat2|Gadget-gConfig.js}} (jego opis do {{LinkKomunikat2|Gadget-gConfig}}). A później zaaktualizuj gadżet {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}, a także zainstalować w miejscu {{LinkKomunikat2|Gadget-Funkcje.js}} gadżet {{LinkUżytkownik2|Persino/Gadget-Funkcje.js}}, a również zaktualizować wpis dla gadżetu StronaSubst tak jak w {{LinkUżytkownik2|Persino/Gadgets-definition}}. A później sprawdzić, czy wszystko działa. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 13:19, 4 lut 2022 (CET)</del> == Przepełnienie scrollbarów, poszczególnych elementów strony, a ustawienia różnych klas, jeżeli takowe istnieją == {{Ping|Wargo}}Czy mógłbyś uwzględnić na stronie {{LinkKomunikat2|Common.js}} część mojej strony, która jest po sekwencji /**/, będąca na stronie {{LinkUżytkownik2|Persino/common.js}}. Ten skrypt sprawdza, czy nastąpiło przepełnienie elementów strony dokumentu HTML Wikibooks, a jeżeli nastąpiło, to następuje ustawienie tam odpowiednich klas, a jeżeli ono znikło, to usunięcie tych klas. Ten skrypt jest mi potrzebny do szablonu {{s|StronaStart}} i jego pokrewnych oraz do mojego ustawienia skórki vector-2022, która jest w mojej przestrzeni użytkownika. Dziękuję za spełnienie mojej prośby. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 19:23, 27 maj 2022 (CEST) == Aktualizacja przepełnienia scrollbarów i implementacja sticky == {{Ping|Wargo}} Czy mógłbyś uwzględnić na stronie {{LinkKomunikat2|Common.js}} część mojej strony, która jest po sekwencji /**/, będąca na stronie {{LinkUżytkownik2|Persino/common.js}}. W przypadku pierwszego algorytmu, dodałem tam klasy {{Code|mw-overflow-x}} i {{Code|mw-overflow-y}}, które ten algorytm rozpoznaje, i dla nich liczy, czy nastąpiło to właśnie przepełnienie. A wcześniej liczyło dla wszystkich znaczników na stronie, co spowalniało całą stronę. Tam, gdzie, ważne jest liczenie przepełnienie wstawiłem {{Code|mw-overflow-x}}, czy {{Code|mw-overflow-y}}, czyli algorytm ten tam powinien działać, co można sprawdzić na stronie głównej tego projektu ({{NAZWASERWISU|link=tak}}). Drugi algorytm jest rozszerzenie właściwości {{Code|position:sticky}}, który on nie działa, gdy choćby jeden z rodziców jest z nie {{Code|overflow:visible}}, ale z {{Code|overflow}}, a ja zrobiłem, że jednak zaczeło działać, a ja tak to zrobiłem: {{Code|position:sticky}} zastąpiłem {{Code|position:absolute}}, w tym znaczników ustawiam {{Code|mw-sticky-y}} (przesuw w pionie) lub {{Code|mw-sticky-x}} (przesuw w poziomie), wtedy ten algorytm JavaScript działa tak, że pudełko przesuwa się od pewnej granicy do pewnej, ale nigdy nie wychodzi poza te granice, czyli działa podobnie jak {{Code|position:sticky}}. Dziękuję za spełnienie mojej prośby. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 12:41, 9 lip 2022 (CEST) ==Aktualizacja skryptów na {{LinkKomunikat2|common.js}} z {{LinkUżytkownik2|Persino/common.js}}== {{Ping|Wargo}} Czy mógłbyś zaktualizować kod na stronie {{LinkKomunikat2|common.js}} ze strony {{LinkUżytkownik2|Persino/common.js}} pod znakiem {{Code|/**/}}. Zdefiniowałem przestrzeń nazw {{Code|Common}} definicją: {{Pre|var Common{{=}}new Array();}} Prawie wszystkie funkcje ze strony {{LinkKomunikat2|common.js}} przeniosłem do tej przestrzeni na stronie {{LinkUżytkownik2|Persino/common.js}} (tutaj wszystkie funkcje są w przestrzeni {{Code|Common}}). Rozwinąłem funkcję {{Code|Common.ScrollBarOverflow}}, {{Code|Common.StickyXY}} i {{Code|Common.OptimalXY}}. Napisałem od nowa funkcje: {{Code|Common.RamkiTableIDiv}} i {{Code|Common.ZdarzeniaDodatkoweFunkcyjneXY}} oraz funkcję do obsługi szablonu {{s|StronaStart}} i jego pokrewnych książkowych z definiowałem w postaci: {{Code|Common.StronaStart}}. Co oznaczają te funkcje: * {{Code|Common.ScrollBarOverflow}} - do generowania pewnych klas, które służą do obsługi pudełka z paskami przewijania, * {{Code|Common.StickyXY}} - aktualizacja funkcji {{Code|position:sticky}}, tam gdzie go nie można go użyć, do używamy tej funkcji, * {{Code|Common.OptimalXY}} - do obsługi boksów na stronach z użytymi szablonami stronicowymi książkowymi otwierającymi i zamykającymi, * {{Code|Common.RamkiTableIDiv}} - dodaje dalsze funkcje przy przyciskach tabel i ramek, nawigacyjnych, * {{Code|Common.ZdarzeniaDodatkoweFunkcyjneXY}} - dodaje zdarzenia do obsługi funkcji: {{Code|Common.StickyXY}} i {{Code|Common.OptimalXY}}, * {{Code|Common.StronaStart}} - służy do obsługi spisu treści i boksów szablonu {{s|StronaStart}}. Na stronach podręcznikowych boksy i spisy treści są responsywne według moich ustawień, a dla wszystkich użytkowników będą responsywne po zaktualizowaniu strony {{LinkKomunikat2|common.js}} przy pomocy {{LinkUżytkownik2|Persino/common.js}}. ---- Proszę o pilną reakcję i zrealizowanie mojej prośby. Z góry dziękuję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 15:55, 3 sie 2022 (CEST) :Czy coś jest do usunięcia z obecnego common.js? Tj. czy coś stamtąd mam tym zastąpić? [[Wikipedysta:Wargo|Wargo]] ([[Dyskusja wikipedysty:Wargo|dyskusja]]) 20:55, 7 sie 2022 (CEST) ::{{Ping|Wargo}}Właśnie masz zastąpić nową wersją z pod /**/ z: {{LinkUżytkownik2|Persino/common.js}}, zastępując całą zawartość strony w: {{LinkKomunikat2|common.js}}. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 21:04, 7 sie 2022 (CEST) :::{{Ping|Wargo}} Już możesz zastępować, wszystko gotowe! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 21:39, 7 sie 2022 (CEST) ===Ostatnia poprawka=== {{Ping|Wargo}}Czy mógłbyś linijkę kodu: {{Pre|var top_ab{{=}}rect_rodzic[top]-margintop; var bottom_ab{{=}}(wys-rect_rodzic[bottom])-marginbottom; }} poprawić na: {{Pre|var top_ab{{=}}rect_rodzic[top]; var bottom_ab{{=}}(wys-rect_rodzic[bottom]); }} w funkcji: {{Code|Common.StickyXY}}, w {{LinkKomunikat2|common.js}} według {{LinkUżytkownik2|Persino/common.js}}. Tj. to linijka: 481-482. Z góry dziękuję za spełnienie mojej prośby. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 09:51, 8 sie 2022 (CEST) === Miejmy nadzieję, że ostatnia poprawka na stronie {{LinkKomunikat2|common.js}} === {{Ping|Wargo}}Czy mógłbyś linie kodu w linii 177 i 183 na stronie {{LinkKomunikat2|common.js}} według {{LinkUżytkownik2|Persino/common.js}} poprawić według schematu: {{Pre |collapseTable( i ); }} zamienić na: {{Pre |Common.collapseTable( i ); }} Poprawka jest ważna, bo ramki nawigacyjne, na stronie głównej i gdzieś indziej, nie chcą się kolapsować, a po tej operacji już będą się tak zachowywać! Z góry dziękuję za spełnienie mojej prośby. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 12:58, 8 sie 2022 (CEST) fe7nvd9lwyv05oygdg5rbvqg6wq8mkz 437186 437185 2022-08-08T10:59:29Z Persino 2851 /* Miejmy nadzieję, że ostatnia poprawka na stronie {{LinkKomunikat2|common.js}} */ wikitext text/x-wiki <noinclude>__LINKNOWEJSEKCJI__ [[Kategoria:Księga próśb i zadań]]</noinclude> {{fmbox|tekst=UWAGA: Nowe zgłoszenia o innym temacie niż to co dotyczy [[Wikibooks:Prośby do administratorów interfejsu/Zgłoszenia]] lub łamiące zasady [[Wikibooks:Wikietykieta|Wikietykiety]] mogą być bezwarunkowo wycofywane z tej strony}} <!-- Nowe zgłoszenia wstawiaj poniżej tej linii. Powyżej tej linii nic nie usuwaj. Nie usuwaj tej linii --> == Usunięcie wymuszenia białego tła w tabelach. == Zwracam się z prośbą o usunięcie [[MediaWiki:Common.css]] fragmentu <syntaxhighlight lang="css"> } + table.wikitable td, + table.prettytable td { + background: #f9f9f9; </syntaxhighlight> Fragment ten wymusza białe tło w tabelach, co uniemożliwia zastosowanie kolorowych komórek. Takowe bardzo by się przydały np. w opracowywanym przeze [[Zbiór zadań maturalnych/Biologia|Zbiorze zadań maturalnych z Biologii]] jak np. tu: [[:Kategoria:Zbiór zadań maturalnych/podstawa programowa 2017/Biologia/Zakres rozszerzony/Treści nauczania/II/3/1]]. Póki co posiłkuję się obramowaniem, chciałbym jednak docelowo zastosować kolorowanie komórek. Z góry dziękuję za rozpatrzenie mojej prośby. [[Wikipedysta:Superjurek|Superjurek]] ([[Dyskusja wikipedysty:Superjurek|dyskusja]]) 22:42, 16 kwi 2021 (CEST) ----- {{Ping|Superjurek}}Spróbuj użyć zapisu, np.: <syntaxhighlight lang="css"> background-color: blue !important; color:white !important; </syntaxhighlight> zamiast: <syntaxhighlight lang="css"> background-color: blue; color:white; </syntaxhighlight> to powinno naprawić cały problem! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 21:05, 27 maj 2022 (CEST) ==Wstawianie kodu do {{LinkKomunikat2|Common.js}}== Czy mógłbyś wsadzić do tej strony {{Code|.js}} kod: <syntaxhighlight lang="JavaScript"> function WyswietlStronyKsiazki(){ function WikikodTitle(data,tabs,titles,tabstrona){ var title=data.parse.title; var wikikod=data.parse.text['*']; var elements=tabstrona[title]; for(var q in elements){ elements[q].innerHTML=wikikod; var a=elements[q].getElementsByTagName('a'); if((a!==null)&&(a.length>0)){ var lena=a.length; for(var i=0;i<lena;++i){ var href=a[i].getAttribute('href'); if(href!==null){ var re=/^[^\?]+\?[^&]+=[^&]*&?/g; if(!re.test(href)){ var re2=/#/g; var s=href.search(re2); if(s!=-1){ var re=/^\/wiki\//g; if(re.test(href)){ var href2=href.substring(6,s) href2=decodeURI(href2); href2=href2.replace(/[_\s]+/g," "); for(var s=0;s<titles.length;s++){ var strona=titles[s]; if(href2==strona){ var href3=href.replace(/^[^#]*/g,""); var a_toc=a[i]; a_toc.setAttribute('href',encodeURI(href3)); a_toc.setAttribute("title",""); } } } }else{ var re=/^\/wiki\//g; if(re.test(href)){ var hrefv=href.replace(re,""); var hrefs=decodeURI(hrefv); hrefs=hrefs.replace(/[_\s]+/g," "); for(var s=0;s<titles.length;s++){ var strona=titles[s]; if(hrefs==strona){ var hrefs2=hrefv.replace(/^[^\/]*\//g,""); var a_toc=a[i]; a_toc.setAttribute('href','#'+hrefs2); a_toc.setAttribute("title",""); } } } } } } } } } var tab_toc=new Array("toc","toc_spis"); for(var d=0;d<tab_toc.length;++d){ var toc=document.getElementsByClassName(tab_toc[d]); if((toc!==null)&&(toc.length>0)){ for(var q in elements){ var num=new Array(); var v=0; for(var e=0;e<tabs.length;++e){ if(tabs[e]==title){ v+=1; if(parseInt(q)+1==v){ num.push(parseInt(e)+1); break; } } } var headline=elements[q].getElementsByClassName("mw-headline"); if((headline!==null)&&(headline.length>0)){ var ulozenie=0; var ostanie=0; var len=headline.length; var naglowek=""; var liczba_ulozenia_w_menu_spisu_tresci=1; var h_number=1; for (var k=0;k<len;++k){ var element2=headline[k]; var nag=element2.innerHTML; var nag2=element2.getAttribute('id'); var h=element2.parentNode.tagName; var h_numer=h.replace(/^[^\d]+/g,""); h_numer=parseInt(h_numer) if((ulozenie==0)||(ulozenie>=h_numer)){ ulozenie=h_numer-1; }else { if(ostatnie+1<h_numer-ulozenie){ ulozenie=h_numer-ostatnie-1; } } ostatnie=h_numer-ulozenie; h_numer=h_numer-ulozenie; if(k==0){ num.push(1); var nag="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext\">"+nag+"</span>"; naglowek+="<ul><li><a href=\"#"+nag2+"\">"+nag+"</a>"; }else{ if(h_numer==liczba_ulozenia_w_menu_spisu_tresci){ num[num.length-1]+=1; var nag="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext\">"+nag+"</span>"; naglowek+="</li><li><a href=\"#"+nag2+"\">"+nag+"</a>"; }else{ if(h_numer>liczba_ulozenia_w_menu_spisu_tresci){ num.push(1); var nag="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext\">"+nag+"</span>"; naglowek+="<ul><li><a href=\"#"+nag2+"\">"+nag+"</a>"; liczba_ulozenia_w_menu_spisu_tresci=h_numer; }else{ if(h_numer<liczba_ulozenia_w_menu_spisu_tresci){ num.splice(num.length-liczba_ulozenia_w_menu_spisu_tresci+h_numer,liczba_ulozenia_w_menu_spisu_tresci-h_numer); num[num.length-1]+=1; var nag="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext\">"+nag+"</span>"; naglowek+=('</li></ul>'.repeat(liczba_ulozenia_w_menu_spisu_tresci-h_numer))+"</li><li><a href=\"#"+nag2+"\">"+nag+"</a>"; liczba_ulozenia_w_menu_spisu_tresci=h_numer; } } } } } if(naglowek!=""){ naglowek+=('</li></ul>'.repeat(liczba_ulozenia_w_menu_spisu_tresci)); for(var b=0;b<toc.length;++b){ var a2=toc[b].getElementsByTagName('a'); if((a2!=null)&&(a2.length>0)){ for(var y=0;y<a2.length;++y){ var parent=a2[y].parentNode; var href=a2[y].getAttribute('href'); href=href.replace(/^#/g,""); var title2=title.replace(/^[^\/]+\//g,""); if(href==title2.replace(/[_ ]+/g,"_")+((q>0)?("_"+(parseInt(q)+1)):"")){ var div=document.createElement('div'); div.innerHTML=naglowek; var links=a2[y].getElementsByClassName('toctext'); if((links!=null)&&(links.length>0)){ var link=links[0].innerHTML; if(link==title2){ parent.appendChild(div.getElementsByTagName('ul')[0]); } } } } } } } } } } } for(var d=0;d<tab_toc.length;++d){ var toc_pos=document.getElementsByClassName(tab_toc[d]); if((toc_pos!==null)&&(toc_pos.length>0)){ for(var w=0;w<toc_pos.length;++w){ var li=toc_pos[w].getElementsByTagName('li'); var poziom; var section=1; for(var z=0;z<li.length;++z){ var parent=li[z].parentNode.parentNode; if(parent!==null){ var klasa=parent.getAttribute('class'); if(klasa!==null){ var poziom=klasa.match(/toclevel-\d+/g); if(poziom!==null){ poziom=parseInt(poziom.toString().match(/\d+$/).toString())+1; }else{ poziom=1; } }else{poziom=1;} }else{poziom=1;} var klasa=li[z].getAttribute('class'); if(klasa!==null){ var czy_section=klasa.match(/tocsection-\d+/); if(czy_section!==null){ klasa=klasa.replace(/tocsection-\d+/g,"tocsection-"+section); li[z].setAttribute('class',klasa); }else{ li[z].classList.add("tocsection-"+section); } var czy_level=klasa.match(/toclevel-\d+/); if(czy_level!==null){ klasa=li[z].getAttribute('class'); klasa=klasa.replace(/toclevel-\d+/g,"toclevel-"+poziom); li[z].setAttribute('class',klasa); }else{ li[z].classList.add("toclevel-"+poziom); } }else{ li[z].setAttribute('class',"toclevel-"+poziom+" tocsection-"+section) } section=section+1; } } } } var headline=document.getElementsByClassName('mw-headline'); if((headline)&&(headline.length>0)){ for(var i=0;i<headline.length;++i){ var c=1; var el=headline[i]; var id0=el.innerHTML; id0=id0.replace(/[_\s]+/g,"_"); id0=id0.replace(/<[^<>]+>/g,""); for(var j=0;j<i;++j){ var el1=headline[j]; var id1=el1.innerHTML; id1=id1.replace(/[_\s]+/g,"_"); id1=id1.replace(/<[^<>]+>/g,""); if(id0==id1){ ++c; } } if(c==1){ el.setAttribute('id',id0); }else{ el.setAttribute('id',id0+"_"+c); } } } var tab_toc=new Array("toc","toc_spis"); for(d=0;d<tab_toc.length;++d){ var toc_pos=document.getElementsByClassName(tab_toc[d]); if((toc_pos!==null)&&(toc_pos.length>0)){ for(var w=0;w<toc_pos.length;++w){ var toc=toc_pos[w]; var a=toc.getElementsByTagName('a'); if((a)&&(a.length>0)){ for(var p=0;p<a.length;++p){ var strona=a[p].getElementsByClassName('toctext')[0].innerHTML.replace(/[_\s]+/g,"_"); strona=strona.replace(/<[^<>]+>/g,""); var c=1; for(var v=0;v<p;++v){ var strona2; strona2=a[v].getElementsByClassName('toctext')[0].innerHTML.replace(/[_\s]+/g,"_"); strona2=strona2.replace(/<[^<>]+>/g,""); if(strona==strona2){ ++c; } } strona=strona.replace(/<[^<>]+>/g,""); if(c==1){ a[p].setAttribute('href',"#"+strona); }else{ a[p].setAttribute('href',"#"+strona+"_"+c); } } } } } } } function StronaSubst(data){ var wikikod=data.parse.text['*']; var elem=document.createElement('div'); elem.innerHTML=wikikod; var klasa_mw_parser_out=elem.getElementsByClassName('mw-parser-output'); var wikikod_wyodrepniony=(((klasa_mw_parser_out)&&(klasa_mw_parser_out.length==1))?(klasa_mw_parser_out[0].innerHTML):wikikod); var czy_wikikod=wikikod_wyodrepniony.match(/^\s*$/g); if(czy_wikikod){return;} var strona_subst="strona_subst"; var tagclass=document.getElementsByClassName(strona_subst); if(tagclass==null){return null;} var liczba_elementow=tagclass.length; if(liczba_elementow==0){return null;} var titles=new Array(); var tabstrona=new Array(); var tabs=new Array(); for (var i=0;i<liczba_elementow;++i){ var element=tagclass[i]; if(element.tagName!="DIV"){return null;} var strona=element.innerHTML; var re = /^[_ ]*$/g; var dopasowanie = re.test(strona); if(dopasowanie){return null;}; strona=strona.replace(/^[_ ]*/g,""); strona=strona.replace(/[_ ]*$/g,""); strona=strona.replace(/[_ ]+/g," "); tabs[i]=strona; var czy=false; for(var d in titles){ if(titles[d]==strona){ czy=true; break; } } if(!czy){ titles[titles.length]=strona; } if(tabstrona[strona]==null){ tabstrona[strona]=new Array(); } var tab=tabstrona[strona]; var tablen=tab.length; tabstrona[strona][tablen]=element; } for ( var p in titles ) { var strona=titles[p]; var api=new mw.Api; api.get({ action: 'parse', format: 'json', prop: 'text', title: strona, text: '{{:'+strona+'}}', disabletoc: true, disablelimitreport: true, contentmodel: 'wikitext' }).done(function(data){ WikikodTitle(data,tabs,titles,tabstrona); }); } } var strona = mw.config.get('wgPageName'); var api=new mw.Api; api.get({ action: 'parse', format: 'json', prop: 'text', title: strona, text: '{{#invoke:StronicowyParser|CzyStronaSubst}}', disabletoc: true, disablelimitreport: true, contentmodel: 'wikitext' }).done(function(data){ StronaSubst(data) }); } $(WyswietlStronyKsiazki); </syntaxhighlight> Ten program {{Code|.js}} znajduje się na stronie: {{LinkUżytkownik2|Persino/common.js}}. Jak wstawisz ten kod do strony {{LinkKomunikat2|Common.js}}, to powinno wtedy zadziałać ładowanie modułów książki, za pomocą JavaScript, na stronie {{LinkUżytkownik2|Persino/Wersja do druku}}. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 09:09, 13 lis 2021 (CET) == Gadżet StronaSubst - dodawanie do listy gadżetów == Mamy sobie kod JavaScript {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} i opis gadżetu {{LinkUżytkownik2|Persino/Gadget-StronaSubst}}, czy mógłbyś przenieść na strony w przestrzeni nazw {{Np|MediaWiki|link=tak}}, i wywołaniu gadżetu w takiej formie jak w {{LinkUżytkownik2|Persino/Gadgets-definition}} przenieść na stronę {{LinkKomunikat2|Gadgets-definition}}. Wtedy strona {{LinkUżytkownik2|Persino/Wersja do druku}} powinna działać! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 14:14, 27 lis 2021 (CET) === Zamienianie kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}} === {{Ping|Wargo}}Chodzi tutaj, że jak będzie link do artykułu w nagłówku, to, żeby nie pojawiało się pole '''[ artykuł | edytuj ]''' zamiast '''[ edytuj ]''' - aktualnie w {{LinkKomunikat2|Gadget-StronaSubst.js}} pole '''[ artykuł | edytuj ]''' pojawia się zawsze zamiast '''[ edytuj ]''', wtedy gdy ma zawartość '''strona_subst''' jest nie pusta, to algorytm jest zakańczany. A jak jest nazwa strony w zawartości div-a '''strona_subst''', a nie link w nagłówku, to wtedy ma się prawo pojawić '''[ artykuł | edytuj ]''' zamiast '''[ edytuj ]'''. Czy mógłbyś wersję {{LinkKomunikat2|Gadget-StronaSubst.js}} zamienić na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}. Z góry dziękuję za rozpatrzenie mojej prośby! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 10:13, 30 lis 2021 (CET) ---- {{Ping|Wargo}} Jeszcze, czy mógłbyś zamienić tekst w {{LinkKomunikat2|Gadget-StronaSubst}} z: {{Pre|(bez sekcji "Spis treści" i "Licencja")}} na {{Pre|(bez sekcji "Spis treści", "Bibliografia" i "Licencja")}} [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 19:18, 1 gru 2021 (CET) === Ostatnia poprawka kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}=== {{Ping|Wargo}}Chodzi tutaj, że algorytm zawiesza się na artykule {{LinkGłówna|Mechanika kwantowa/Mechanika kwantowa}}, to co poprawiłem już tak przestaje być, błąd znikł! Czy mógłbyś dokonać zamianę kodu? Proszę o pilną reakcję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 18:30, 3 gru 2021 (CET) === Miejmy nadzieję, że to jest ostatnia poprawka kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}=== {{Ping|Wargo}}Chodzi tutaj, że algorytm ma błędy JavaScript na stronie, przy danej książce: {{LinkGłówna|Szachy}}, czyli przy artykule: {{LinkGłówna|Szachy/Szachy}} - błąd tylko widać, gdy chcemy zbadać element, moja poprawka usuwa ten błąd! Czy mógłbyś dokonać zamianę kodu? Proszę o pilną reakcję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 15:50, 4 gru 2021 (CET) === Następna poprawka kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}} === {{Ping|Wargo}}Chodzi tutaj, że algorytm nie wyświetla w TOC (wbudowany spis treści) podrozdziałów dla artykułu {{LinkGłówna|Matematyka dla liceum/Matematyka dla liceum}}, moja poprawka usuwa ten błąd. Skrypt porządkuje artykuły według nagłówków na stronie tego artykułu w TOC, a zestaw artykułów, w danek sekcji, wyświetla, również w TOC, je przydzielone do niej. Czy mógłbyś dokonać zamianę kodu? Proszę o pilną reakcję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 14:51, 7 gru 2021 (CET) === Poważne poprawki w {{LinkKomunikat2|Gadget-StronaSubst.js}} na podstawie {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} oraz dodanie i zmiana pewnych gadżetów === {{Ping|Wargo}} Następne poprawki dotyczące wpisu w {{LinkKomunikat2|Gadget-StronaSubst.js}}, co do zauważonych drobnych błędów, czyli mógłbyś dokonać zamiany kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}. Z góry dziękuję. Poza tym wszystko działa, od razu dziękuję! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 19:32, 8 gru 2021 (CET) ---- {{Ping|Wargo}} Jeszcze, czy mógłbyś zamienić tekst w {{LinkKomunikat2|Gadget-StronaSubst}} z: {{Pre|(bez sekcji "Spis treści", "Bibliografia" i "Licencja")}} na {{Pre|(bez sekcji: "Spis treści", "Bibliografia", "Zobacz też", "Inne", "Licencja" i tym podobne)}} Dziękuję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 05:43, 9 gru 2021 (CET) ---- {{Ping|Wargo}} Czy mógłbyś uzupełnić {{LinkKomunikat2|Gadgets-definition}}, według {{LinkUżytkownik2|Persino/Gadgets-definition}} - szczególnie trzeba naprawić odwołanie do gadżetu StronaSubst, i dodać gadżety: {{LinkUżytkownik2|Persino/Gadget-gConfig.js}} (jego opis jest w {{LinkUżytkownik2|Persino/Gadget-gConfig}}), przenosząc go do {{LinkKomunikat2|Gadget-gConfig.js}} (jego opis do {{LinkKomunikat2|Gadget-gConfig}}), a także drugi gadżet dotyczący szablonu {{s|Cytuj}} przenieś z {{LinkUżytkownik2|Persino/Gadget-citation-access-info.js}} (jego opis to {{LinkUżytkownik2|Persino/Gadget-citation-access-info}}) do {{LinkKomunikat2|Gadget-citation-access-info.js}} (a jego opis do {{LinkKomunikat2|Gadget-citation-access-info}}). Gadżet '''gConfig''' potrzebny mi jest do gadżetu {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}}, którego zawartość należy przenieść do {{LinkKomunikat2|Gadget-StronaSubst.js}}, a gadżet {{LinkUżytkownik2|Persino/Gadget-citation-access-info.js}}, potrzebny mi jest do szablonu {{s|Cytuj}} do dymku do pełnej wersji tego szablonu, który należy przenieść do {{LinkKomunikat2|Gadget-citation-access-info.js}}. Proszę o pilną reakcję! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 15:04, 11 gru 2021 (CET) ---- Również proszę o zastąpienie strony komunikatu {{LinkKomunikat2|Gadget-map-toggler.js}} stroną {{LinkUżytkownik2|Persino/Gadget-map-toggler.js}}. Z góry dziękuję! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 18:38, 11 gru 2021 (CET) == Zamiana wartości linkowej i szablonowej == {{Ping|Wargo}}Czy mógłbyś zamienić na stronie: {{LinkUżytkownik2|Rychozol/common.js}}, z wartości: {{Nowiki|[[GNU Free Documentation License|GFDL]]}}, na: {{Nowiki|[[Wikibooks:GNU Free Documentation License|GFDL]]}}, a także na tej samej stronie wartość: {{s|clear}}, na {{s|BrClear}}, ponieważ ze względu na zmianę nazw stron. Z góry dziękuję! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 09:35, 13 gru 2021 (CET) <del>== Dalsze zmiany na stronach gadżetów (pilne) == {{Ping|Wargo}}Czy mógłbyś zainstalować gadżet "Gadget-gConfig", tak jak na stronie {{LinkUżytkownik2|Persino/Gadgets-definition}} (pierwsza linijka) w {{LinkKomunikat2|Gadgets-definition}}, a co do tego, jego kod {{LinkUżytkownik2|Persino/Gadget-gConfig.js}} zainstalować w miejscu {{LinkKomunikat2|Gadget-gConfig.js}} (jego opis jest w {{LinkUżytkownik2|Persino/Gadget-gConfig}}), przenosząc go do {{LinkKomunikat2|Gadget-gConfig.js}} (jego opis do {{LinkKomunikat2|Gadget-gConfig}}). A później zaaktualizuj gadżet {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}, a także zainstalować w miejscu {{LinkKomunikat2|Gadget-Funkcje.js}} gadżet {{LinkUżytkownik2|Persino/Gadget-Funkcje.js}}, a również zaktualizować wpis dla gadżetu StronaSubst tak jak w {{LinkUżytkownik2|Persino/Gadgets-definition}}. A później sprawdzić, czy wszystko działa. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 13:19, 4 lut 2022 (CET)</del> == Przepełnienie scrollbarów, poszczególnych elementów strony, a ustawienia różnych klas, jeżeli takowe istnieją == {{Ping|Wargo}}Czy mógłbyś uwzględnić na stronie {{LinkKomunikat2|Common.js}} część mojej strony, która jest po sekwencji /**/, będąca na stronie {{LinkUżytkownik2|Persino/common.js}}. Ten skrypt sprawdza, czy nastąpiło przepełnienie elementów strony dokumentu HTML Wikibooks, a jeżeli nastąpiło, to następuje ustawienie tam odpowiednich klas, a jeżeli ono znikło, to usunięcie tych klas. Ten skrypt jest mi potrzebny do szablonu {{s|StronaStart}} i jego pokrewnych oraz do mojego ustawienia skórki vector-2022, która jest w mojej przestrzeni użytkownika. Dziękuję za spełnienie mojej prośby. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 19:23, 27 maj 2022 (CEST) == Aktualizacja przepełnienia scrollbarów i implementacja sticky == {{Ping|Wargo}} Czy mógłbyś uwzględnić na stronie {{LinkKomunikat2|Common.js}} część mojej strony, która jest po sekwencji /**/, będąca na stronie {{LinkUżytkownik2|Persino/common.js}}. W przypadku pierwszego algorytmu, dodałem tam klasy {{Code|mw-overflow-x}} i {{Code|mw-overflow-y}}, które ten algorytm rozpoznaje, i dla nich liczy, czy nastąpiło to właśnie przepełnienie. A wcześniej liczyło dla wszystkich znaczników na stronie, co spowalniało całą stronę. Tam, gdzie, ważne jest liczenie przepełnienie wstawiłem {{Code|mw-overflow-x}}, czy {{Code|mw-overflow-y}}, czyli algorytm ten tam powinien działać, co można sprawdzić na stronie głównej tego projektu ({{NAZWASERWISU|link=tak}}). Drugi algorytm jest rozszerzenie właściwości {{Code|position:sticky}}, który on nie działa, gdy choćby jeden z rodziców jest z nie {{Code|overflow:visible}}, ale z {{Code|overflow}}, a ja zrobiłem, że jednak zaczeło działać, a ja tak to zrobiłem: {{Code|position:sticky}} zastąpiłem {{Code|position:absolute}}, w tym znaczników ustawiam {{Code|mw-sticky-y}} (przesuw w pionie) lub {{Code|mw-sticky-x}} (przesuw w poziomie), wtedy ten algorytm JavaScript działa tak, że pudełko przesuwa się od pewnej granicy do pewnej, ale nigdy nie wychodzi poza te granice, czyli działa podobnie jak {{Code|position:sticky}}. Dziękuję za spełnienie mojej prośby. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 12:41, 9 lip 2022 (CEST) ==Aktualizacja skryptów na {{LinkKomunikat2|common.js}} z {{LinkUżytkownik2|Persino/common.js}}== {{Ping|Wargo}} Czy mógłbyś zaktualizować kod na stronie {{LinkKomunikat2|common.js}} ze strony {{LinkUżytkownik2|Persino/common.js}} pod znakiem {{Code|/**/}}. Zdefiniowałem przestrzeń nazw {{Code|Common}} definicją: {{Pre|var Common{{=}}new Array();}} Prawie wszystkie funkcje ze strony {{LinkKomunikat2|common.js}} przeniosłem do tej przestrzeni na stronie {{LinkUżytkownik2|Persino/common.js}} (tutaj wszystkie funkcje są w przestrzeni {{Code|Common}}). Rozwinąłem funkcję {{Code|Common.ScrollBarOverflow}}, {{Code|Common.StickyXY}} i {{Code|Common.OptimalXY}}. Napisałem od nowa funkcje: {{Code|Common.RamkiTableIDiv}} i {{Code|Common.ZdarzeniaDodatkoweFunkcyjneXY}} oraz funkcję do obsługi szablonu {{s|StronaStart}} i jego pokrewnych książkowych z definiowałem w postaci: {{Code|Common.StronaStart}}. Co oznaczają te funkcje: * {{Code|Common.ScrollBarOverflow}} - do generowania pewnych klas, które służą do obsługi pudełka z paskami przewijania, * {{Code|Common.StickyXY}} - aktualizacja funkcji {{Code|position:sticky}}, tam gdzie go nie można go użyć, do używamy tej funkcji, * {{Code|Common.OptimalXY}} - do obsługi boksów na stronach z użytymi szablonami stronicowymi książkowymi otwierającymi i zamykającymi, * {{Code|Common.RamkiTableIDiv}} - dodaje dalsze funkcje przy przyciskach tabel i ramek, nawigacyjnych, * {{Code|Common.ZdarzeniaDodatkoweFunkcyjneXY}} - dodaje zdarzenia do obsługi funkcji: {{Code|Common.StickyXY}} i {{Code|Common.OptimalXY}}, * {{Code|Common.StronaStart}} - służy do obsługi spisu treści i boksów szablonu {{s|StronaStart}}. Na stronach podręcznikowych boksy i spisy treści są responsywne według moich ustawień, a dla wszystkich użytkowników będą responsywne po zaktualizowaniu strony {{LinkKomunikat2|common.js}} przy pomocy {{LinkUżytkownik2|Persino/common.js}}. ---- Proszę o pilną reakcję i zrealizowanie mojej prośby. Z góry dziękuję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 15:55, 3 sie 2022 (CEST) :Czy coś jest do usunięcia z obecnego common.js? Tj. czy coś stamtąd mam tym zastąpić? [[Wikipedysta:Wargo|Wargo]] ([[Dyskusja wikipedysty:Wargo|dyskusja]]) 20:55, 7 sie 2022 (CEST) ::{{Ping|Wargo}}Właśnie masz zastąpić nową wersją z pod /**/ z: {{LinkUżytkownik2|Persino/common.js}}, zastępując całą zawartość strony w: {{LinkKomunikat2|common.js}}. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 21:04, 7 sie 2022 (CEST) :::{{Ping|Wargo}} Już możesz zastępować, wszystko gotowe! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 21:39, 7 sie 2022 (CEST) ===Ostatnia poprawka=== {{Ping|Wargo}}Czy mógłbyś linijkę kodu: {{Pre|var top_ab{{=}}rect_rodzic[top]-margintop; var bottom_ab{{=}}(wys-rect_rodzic[bottom])-marginbottom; }} poprawić na: {{Pre|var top_ab{{=}}rect_rodzic[top]; var bottom_ab{{=}}(wys-rect_rodzic[bottom]); }} w funkcji: {{Code|Common.StickyXY}}, w {{LinkKomunikat2|common.js}} według {{LinkUżytkownik2|Persino/common.js}}. Tj. to linijka: 481-482. Z góry dziękuję za spełnienie mojej prośby. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 09:51, 8 sie 2022 (CEST) === Miejmy nadzieję, że ostatnia poprawka na stronie {{LinkKomunikat2|common.js}} === {{Ping|Wargo}}Czy mógłbyś linie kodu w linii 177 i 183 na stronie {{LinkKomunikat2|common.js}} według {{LinkUżytkownik2|Persino/common.js}} poprawić według schematu: {{Pre |collapseTable( i ); }} zamienić na: {{Pre |Common.collapseTable( i ); }} Poprawka jest ważna, bo ramki nawigacyjne, na stronie głównej i gdzieś indziej, nie chcą się kolapsować, a po tej operacji już będą się tak zachowywać! Z góry dziękuję za spełnienie mojej prośby. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 12:59, 8 sie 2022 (CEST) gzyqkegmbaxtf923xz4dz8122om99rk 437187 437186 2022-08-08T11:03:58Z Persino 2851 /* Miejmy nadzieję, że ostatnia poprawka na stronie {{LinkKomunikat2|common.js}} */ wikitext text/x-wiki <noinclude>__LINKNOWEJSEKCJI__ [[Kategoria:Księga próśb i zadań]]</noinclude> {{fmbox|tekst=UWAGA: Nowe zgłoszenia o innym temacie niż to co dotyczy [[Wikibooks:Prośby do administratorów interfejsu/Zgłoszenia]] lub łamiące zasady [[Wikibooks:Wikietykieta|Wikietykiety]] mogą być bezwarunkowo wycofywane z tej strony}} <!-- Nowe zgłoszenia wstawiaj poniżej tej linii. Powyżej tej linii nic nie usuwaj. Nie usuwaj tej linii --> == Usunięcie wymuszenia białego tła w tabelach. == Zwracam się z prośbą o usunięcie [[MediaWiki:Common.css]] fragmentu <syntaxhighlight lang="css"> } + table.wikitable td, + table.prettytable td { + background: #f9f9f9; </syntaxhighlight> Fragment ten wymusza białe tło w tabelach, co uniemożliwia zastosowanie kolorowych komórek. Takowe bardzo by się przydały np. w opracowywanym przeze [[Zbiór zadań maturalnych/Biologia|Zbiorze zadań maturalnych z Biologii]] jak np. tu: [[:Kategoria:Zbiór zadań maturalnych/podstawa programowa 2017/Biologia/Zakres rozszerzony/Treści nauczania/II/3/1]]. Póki co posiłkuję się obramowaniem, chciałbym jednak docelowo zastosować kolorowanie komórek. Z góry dziękuję za rozpatrzenie mojej prośby. [[Wikipedysta:Superjurek|Superjurek]] ([[Dyskusja wikipedysty:Superjurek|dyskusja]]) 22:42, 16 kwi 2021 (CEST) ----- {{Ping|Superjurek}}Spróbuj użyć zapisu, np.: <syntaxhighlight lang="css"> background-color: blue !important; color:white !important; </syntaxhighlight> zamiast: <syntaxhighlight lang="css"> background-color: blue; color:white; </syntaxhighlight> to powinno naprawić cały problem! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 21:05, 27 maj 2022 (CEST) ==Wstawianie kodu do {{LinkKomunikat2|Common.js}}== Czy mógłbyś wsadzić do tej strony {{Code|.js}} kod: <syntaxhighlight lang="JavaScript"> function WyswietlStronyKsiazki(){ function WikikodTitle(data,tabs,titles,tabstrona){ var title=data.parse.title; var wikikod=data.parse.text['*']; var elements=tabstrona[title]; for(var q in elements){ elements[q].innerHTML=wikikod; var a=elements[q].getElementsByTagName('a'); if((a!==null)&&(a.length>0)){ var lena=a.length; for(var i=0;i<lena;++i){ var href=a[i].getAttribute('href'); if(href!==null){ var re=/^[^\?]+\?[^&]+=[^&]*&?/g; if(!re.test(href)){ var re2=/#/g; var s=href.search(re2); if(s!=-1){ var re=/^\/wiki\//g; if(re.test(href)){ var href2=href.substring(6,s) href2=decodeURI(href2); href2=href2.replace(/[_\s]+/g," "); for(var s=0;s<titles.length;s++){ var strona=titles[s]; if(href2==strona){ var href3=href.replace(/^[^#]*/g,""); var a_toc=a[i]; a_toc.setAttribute('href',encodeURI(href3)); a_toc.setAttribute("title",""); } } } }else{ var re=/^\/wiki\//g; if(re.test(href)){ var hrefv=href.replace(re,""); var hrefs=decodeURI(hrefv); hrefs=hrefs.replace(/[_\s]+/g," "); for(var s=0;s<titles.length;s++){ var strona=titles[s]; if(hrefs==strona){ var hrefs2=hrefv.replace(/^[^\/]*\//g,""); var a_toc=a[i]; a_toc.setAttribute('href','#'+hrefs2); a_toc.setAttribute("title",""); } } } } } } } } } var tab_toc=new Array("toc","toc_spis"); for(var d=0;d<tab_toc.length;++d){ var toc=document.getElementsByClassName(tab_toc[d]); if((toc!==null)&&(toc.length>0)){ for(var q in elements){ var num=new Array(); var v=0; for(var e=0;e<tabs.length;++e){ if(tabs[e]==title){ v+=1; if(parseInt(q)+1==v){ num.push(parseInt(e)+1); break; } } } var headline=elements[q].getElementsByClassName("mw-headline"); if((headline!==null)&&(headline.length>0)){ var ulozenie=0; var ostanie=0; var len=headline.length; var naglowek=""; var liczba_ulozenia_w_menu_spisu_tresci=1; var h_number=1; for (var k=0;k<len;++k){ var element2=headline[k]; var nag=element2.innerHTML; var nag2=element2.getAttribute('id'); var h=element2.parentNode.tagName; var h_numer=h.replace(/^[^\d]+/g,""); h_numer=parseInt(h_numer) if((ulozenie==0)||(ulozenie>=h_numer)){ ulozenie=h_numer-1; }else { if(ostatnie+1<h_numer-ulozenie){ ulozenie=h_numer-ostatnie-1; } } ostatnie=h_numer-ulozenie; h_numer=h_numer-ulozenie; if(k==0){ num.push(1); var nag="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext\">"+nag+"</span>"; naglowek+="<ul><li><a href=\"#"+nag2+"\">"+nag+"</a>"; }else{ if(h_numer==liczba_ulozenia_w_menu_spisu_tresci){ num[num.length-1]+=1; var nag="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext\">"+nag+"</span>"; naglowek+="</li><li><a href=\"#"+nag2+"\">"+nag+"</a>"; }else{ if(h_numer>liczba_ulozenia_w_menu_spisu_tresci){ num.push(1); var nag="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext\">"+nag+"</span>"; naglowek+="<ul><li><a href=\"#"+nag2+"\">"+nag+"</a>"; liczba_ulozenia_w_menu_spisu_tresci=h_numer; }else{ if(h_numer<liczba_ulozenia_w_menu_spisu_tresci){ num.splice(num.length-liczba_ulozenia_w_menu_spisu_tresci+h_numer,liczba_ulozenia_w_menu_spisu_tresci-h_numer); num[num.length-1]+=1; var nag="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext\">"+nag+"</span>"; naglowek+=('</li></ul>'.repeat(liczba_ulozenia_w_menu_spisu_tresci-h_numer))+"</li><li><a href=\"#"+nag2+"\">"+nag+"</a>"; liczba_ulozenia_w_menu_spisu_tresci=h_numer; } } } } } if(naglowek!=""){ naglowek+=('</li></ul>'.repeat(liczba_ulozenia_w_menu_spisu_tresci)); for(var b=0;b<toc.length;++b){ var a2=toc[b].getElementsByTagName('a'); if((a2!=null)&&(a2.length>0)){ for(var y=0;y<a2.length;++y){ var parent=a2[y].parentNode; var href=a2[y].getAttribute('href'); href=href.replace(/^#/g,""); var title2=title.replace(/^[^\/]+\//g,""); if(href==title2.replace(/[_ ]+/g,"_")+((q>0)?("_"+(parseInt(q)+1)):"")){ var div=document.createElement('div'); div.innerHTML=naglowek; var links=a2[y].getElementsByClassName('toctext'); if((links!=null)&&(links.length>0)){ var link=links[0].innerHTML; if(link==title2){ parent.appendChild(div.getElementsByTagName('ul')[0]); } } } } } } } } } } } for(var d=0;d<tab_toc.length;++d){ var toc_pos=document.getElementsByClassName(tab_toc[d]); if((toc_pos!==null)&&(toc_pos.length>0)){ for(var w=0;w<toc_pos.length;++w){ var li=toc_pos[w].getElementsByTagName('li'); var poziom; var section=1; for(var z=0;z<li.length;++z){ var parent=li[z].parentNode.parentNode; if(parent!==null){ var klasa=parent.getAttribute('class'); if(klasa!==null){ var poziom=klasa.match(/toclevel-\d+/g); if(poziom!==null){ poziom=parseInt(poziom.toString().match(/\d+$/).toString())+1; }else{ poziom=1; } }else{poziom=1;} }else{poziom=1;} var klasa=li[z].getAttribute('class'); if(klasa!==null){ var czy_section=klasa.match(/tocsection-\d+/); if(czy_section!==null){ klasa=klasa.replace(/tocsection-\d+/g,"tocsection-"+section); li[z].setAttribute('class',klasa); }else{ li[z].classList.add("tocsection-"+section); } var czy_level=klasa.match(/toclevel-\d+/); if(czy_level!==null){ klasa=li[z].getAttribute('class'); klasa=klasa.replace(/toclevel-\d+/g,"toclevel-"+poziom); li[z].setAttribute('class',klasa); }else{ li[z].classList.add("toclevel-"+poziom); } }else{ li[z].setAttribute('class',"toclevel-"+poziom+" tocsection-"+section) } section=section+1; } } } } var headline=document.getElementsByClassName('mw-headline'); if((headline)&&(headline.length>0)){ for(var i=0;i<headline.length;++i){ var c=1; var el=headline[i]; var id0=el.innerHTML; id0=id0.replace(/[_\s]+/g,"_"); id0=id0.replace(/<[^<>]+>/g,""); for(var j=0;j<i;++j){ var el1=headline[j]; var id1=el1.innerHTML; id1=id1.replace(/[_\s]+/g,"_"); id1=id1.replace(/<[^<>]+>/g,""); if(id0==id1){ ++c; } } if(c==1){ el.setAttribute('id',id0); }else{ el.setAttribute('id',id0+"_"+c); } } } var tab_toc=new Array("toc","toc_spis"); for(d=0;d<tab_toc.length;++d){ var toc_pos=document.getElementsByClassName(tab_toc[d]); if((toc_pos!==null)&&(toc_pos.length>0)){ for(var w=0;w<toc_pos.length;++w){ var toc=toc_pos[w]; var a=toc.getElementsByTagName('a'); if((a)&&(a.length>0)){ for(var p=0;p<a.length;++p){ var strona=a[p].getElementsByClassName('toctext')[0].innerHTML.replace(/[_\s]+/g,"_"); strona=strona.replace(/<[^<>]+>/g,""); var c=1; for(var v=0;v<p;++v){ var strona2; strona2=a[v].getElementsByClassName('toctext')[0].innerHTML.replace(/[_\s]+/g,"_"); strona2=strona2.replace(/<[^<>]+>/g,""); if(strona==strona2){ ++c; } } strona=strona.replace(/<[^<>]+>/g,""); if(c==1){ a[p].setAttribute('href',"#"+strona); }else{ a[p].setAttribute('href',"#"+strona+"_"+c); } } } } } } } function StronaSubst(data){ var wikikod=data.parse.text['*']; var elem=document.createElement('div'); elem.innerHTML=wikikod; var klasa_mw_parser_out=elem.getElementsByClassName('mw-parser-output'); var wikikod_wyodrepniony=(((klasa_mw_parser_out)&&(klasa_mw_parser_out.length==1))?(klasa_mw_parser_out[0].innerHTML):wikikod); var czy_wikikod=wikikod_wyodrepniony.match(/^\s*$/g); if(czy_wikikod){return;} var strona_subst="strona_subst"; var tagclass=document.getElementsByClassName(strona_subst); if(tagclass==null){return null;} var liczba_elementow=tagclass.length; if(liczba_elementow==0){return null;} var titles=new Array(); var tabstrona=new Array(); var tabs=new Array(); for (var i=0;i<liczba_elementow;++i){ var element=tagclass[i]; if(element.tagName!="DIV"){return null;} var strona=element.innerHTML; var re = /^[_ ]*$/g; var dopasowanie = re.test(strona); if(dopasowanie){return null;}; strona=strona.replace(/^[_ ]*/g,""); strona=strona.replace(/[_ ]*$/g,""); strona=strona.replace(/[_ ]+/g," "); tabs[i]=strona; var czy=false; for(var d in titles){ if(titles[d]==strona){ czy=true; break; } } if(!czy){ titles[titles.length]=strona; } if(tabstrona[strona]==null){ tabstrona[strona]=new Array(); } var tab=tabstrona[strona]; var tablen=tab.length; tabstrona[strona][tablen]=element; } for ( var p in titles ) { var strona=titles[p]; var api=new mw.Api; api.get({ action: 'parse', format: 'json', prop: 'text', title: strona, text: '{{:'+strona+'}}', disabletoc: true, disablelimitreport: true, contentmodel: 'wikitext' }).done(function(data){ WikikodTitle(data,tabs,titles,tabstrona); }); } } var strona = mw.config.get('wgPageName'); var api=new mw.Api; api.get({ action: 'parse', format: 'json', prop: 'text', title: strona, text: '{{#invoke:StronicowyParser|CzyStronaSubst}}', disabletoc: true, disablelimitreport: true, contentmodel: 'wikitext' }).done(function(data){ StronaSubst(data) }); } $(WyswietlStronyKsiazki); </syntaxhighlight> Ten program {{Code|.js}} znajduje się na stronie: {{LinkUżytkownik2|Persino/common.js}}. Jak wstawisz ten kod do strony {{LinkKomunikat2|Common.js}}, to powinno wtedy zadziałać ładowanie modułów książki, za pomocą JavaScript, na stronie {{LinkUżytkownik2|Persino/Wersja do druku}}. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 09:09, 13 lis 2021 (CET) == Gadżet StronaSubst - dodawanie do listy gadżetów == Mamy sobie kod JavaScript {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} i opis gadżetu {{LinkUżytkownik2|Persino/Gadget-StronaSubst}}, czy mógłbyś przenieść na strony w przestrzeni nazw {{Np|MediaWiki|link=tak}}, i wywołaniu gadżetu w takiej formie jak w {{LinkUżytkownik2|Persino/Gadgets-definition}} przenieść na stronę {{LinkKomunikat2|Gadgets-definition}}. Wtedy strona {{LinkUżytkownik2|Persino/Wersja do druku}} powinna działać! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 14:14, 27 lis 2021 (CET) === Zamienianie kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}} === {{Ping|Wargo}}Chodzi tutaj, że jak będzie link do artykułu w nagłówku, to, żeby nie pojawiało się pole '''[ artykuł | edytuj ]''' zamiast '''[ edytuj ]''' - aktualnie w {{LinkKomunikat2|Gadget-StronaSubst.js}} pole '''[ artykuł | edytuj ]''' pojawia się zawsze zamiast '''[ edytuj ]''', wtedy gdy ma zawartość '''strona_subst''' jest nie pusta, to algorytm jest zakańczany. A jak jest nazwa strony w zawartości div-a '''strona_subst''', a nie link w nagłówku, to wtedy ma się prawo pojawić '''[ artykuł | edytuj ]''' zamiast '''[ edytuj ]'''. Czy mógłbyś wersję {{LinkKomunikat2|Gadget-StronaSubst.js}} zamienić na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}. Z góry dziękuję za rozpatrzenie mojej prośby! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 10:13, 30 lis 2021 (CET) ---- {{Ping|Wargo}} Jeszcze, czy mógłbyś zamienić tekst w {{LinkKomunikat2|Gadget-StronaSubst}} z: {{Pre|(bez sekcji "Spis treści" i "Licencja")}} na {{Pre|(bez sekcji "Spis treści", "Bibliografia" i "Licencja")}} [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 19:18, 1 gru 2021 (CET) === Ostatnia poprawka kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}=== {{Ping|Wargo}}Chodzi tutaj, że algorytm zawiesza się na artykule {{LinkGłówna|Mechanika kwantowa/Mechanika kwantowa}}, to co poprawiłem już tak przestaje być, błąd znikł! Czy mógłbyś dokonać zamianę kodu? Proszę o pilną reakcję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 18:30, 3 gru 2021 (CET) === Miejmy nadzieję, że to jest ostatnia poprawka kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}=== {{Ping|Wargo}}Chodzi tutaj, że algorytm ma błędy JavaScript na stronie, przy danej książce: {{LinkGłówna|Szachy}}, czyli przy artykule: {{LinkGłówna|Szachy/Szachy}} - błąd tylko widać, gdy chcemy zbadać element, moja poprawka usuwa ten błąd! Czy mógłbyś dokonać zamianę kodu? Proszę o pilną reakcję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 15:50, 4 gru 2021 (CET) === Następna poprawka kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}} === {{Ping|Wargo}}Chodzi tutaj, że algorytm nie wyświetla w TOC (wbudowany spis treści) podrozdziałów dla artykułu {{LinkGłówna|Matematyka dla liceum/Matematyka dla liceum}}, moja poprawka usuwa ten błąd. Skrypt porządkuje artykuły według nagłówków na stronie tego artykułu w TOC, a zestaw artykułów, w danek sekcji, wyświetla, również w TOC, je przydzielone do niej. Czy mógłbyś dokonać zamianę kodu? Proszę o pilną reakcję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 14:51, 7 gru 2021 (CET) === Poważne poprawki w {{LinkKomunikat2|Gadget-StronaSubst.js}} na podstawie {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} oraz dodanie i zmiana pewnych gadżetów === {{Ping|Wargo}} Następne poprawki dotyczące wpisu w {{LinkKomunikat2|Gadget-StronaSubst.js}}, co do zauważonych drobnych błędów, czyli mógłbyś dokonać zamiany kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}. Z góry dziękuję. Poza tym wszystko działa, od razu dziękuję! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 19:32, 8 gru 2021 (CET) ---- {{Ping|Wargo}} Jeszcze, czy mógłbyś zamienić tekst w {{LinkKomunikat2|Gadget-StronaSubst}} z: {{Pre|(bez sekcji "Spis treści", "Bibliografia" i "Licencja")}} na {{Pre|(bez sekcji: "Spis treści", "Bibliografia", "Zobacz też", "Inne", "Licencja" i tym podobne)}} Dziękuję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 05:43, 9 gru 2021 (CET) ---- {{Ping|Wargo}} Czy mógłbyś uzupełnić {{LinkKomunikat2|Gadgets-definition}}, według {{LinkUżytkownik2|Persino/Gadgets-definition}} - szczególnie trzeba naprawić odwołanie do gadżetu StronaSubst, i dodać gadżety: {{LinkUżytkownik2|Persino/Gadget-gConfig.js}} (jego opis jest w {{LinkUżytkownik2|Persino/Gadget-gConfig}}), przenosząc go do {{LinkKomunikat2|Gadget-gConfig.js}} (jego opis do {{LinkKomunikat2|Gadget-gConfig}}), a także drugi gadżet dotyczący szablonu {{s|Cytuj}} przenieś z {{LinkUżytkownik2|Persino/Gadget-citation-access-info.js}} (jego opis to {{LinkUżytkownik2|Persino/Gadget-citation-access-info}}) do {{LinkKomunikat2|Gadget-citation-access-info.js}} (a jego opis do {{LinkKomunikat2|Gadget-citation-access-info}}). Gadżet '''gConfig''' potrzebny mi jest do gadżetu {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}}, którego zawartość należy przenieść do {{LinkKomunikat2|Gadget-StronaSubst.js}}, a gadżet {{LinkUżytkownik2|Persino/Gadget-citation-access-info.js}}, potrzebny mi jest do szablonu {{s|Cytuj}} do dymku do pełnej wersji tego szablonu, który należy przenieść do {{LinkKomunikat2|Gadget-citation-access-info.js}}. Proszę o pilną reakcję! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 15:04, 11 gru 2021 (CET) ---- Również proszę o zastąpienie strony komunikatu {{LinkKomunikat2|Gadget-map-toggler.js}} stroną {{LinkUżytkownik2|Persino/Gadget-map-toggler.js}}. Z góry dziękuję! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 18:38, 11 gru 2021 (CET) == Zamiana wartości linkowej i szablonowej == {{Ping|Wargo}}Czy mógłbyś zamienić na stronie: {{LinkUżytkownik2|Rychozol/common.js}}, z wartości: {{Nowiki|[[GNU Free Documentation License|GFDL]]}}, na: {{Nowiki|[[Wikibooks:GNU Free Documentation License|GFDL]]}}, a także na tej samej stronie wartość: {{s|clear}}, na {{s|BrClear}}, ponieważ ze względu na zmianę nazw stron. Z góry dziękuję! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 09:35, 13 gru 2021 (CET) <del>== Dalsze zmiany na stronach gadżetów (pilne) == {{Ping|Wargo}}Czy mógłbyś zainstalować gadżet "Gadget-gConfig", tak jak na stronie {{LinkUżytkownik2|Persino/Gadgets-definition}} (pierwsza linijka) w {{LinkKomunikat2|Gadgets-definition}}, a co do tego, jego kod {{LinkUżytkownik2|Persino/Gadget-gConfig.js}} zainstalować w miejscu {{LinkKomunikat2|Gadget-gConfig.js}} (jego opis jest w {{LinkUżytkownik2|Persino/Gadget-gConfig}}), przenosząc go do {{LinkKomunikat2|Gadget-gConfig.js}} (jego opis do {{LinkKomunikat2|Gadget-gConfig}}). A później zaaktualizuj gadżet {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}, a także zainstalować w miejscu {{LinkKomunikat2|Gadget-Funkcje.js}} gadżet {{LinkUżytkownik2|Persino/Gadget-Funkcje.js}}, a również zaktualizować wpis dla gadżetu StronaSubst tak jak w {{LinkUżytkownik2|Persino/Gadgets-definition}}. A później sprawdzić, czy wszystko działa. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 13:19, 4 lut 2022 (CET)</del> == Przepełnienie scrollbarów, poszczególnych elementów strony, a ustawienia różnych klas, jeżeli takowe istnieją == {{Ping|Wargo}}Czy mógłbyś uwzględnić na stronie {{LinkKomunikat2|Common.js}} część mojej strony, która jest po sekwencji /**/, będąca na stronie {{LinkUżytkownik2|Persino/common.js}}. Ten skrypt sprawdza, czy nastąpiło przepełnienie elementów strony dokumentu HTML Wikibooks, a jeżeli nastąpiło, to następuje ustawienie tam odpowiednich klas, a jeżeli ono znikło, to usunięcie tych klas. Ten skrypt jest mi potrzebny do szablonu {{s|StronaStart}} i jego pokrewnych oraz do mojego ustawienia skórki vector-2022, która jest w mojej przestrzeni użytkownika. Dziękuję za spełnienie mojej prośby. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 19:23, 27 maj 2022 (CEST) == Aktualizacja przepełnienia scrollbarów i implementacja sticky == {{Ping|Wargo}} Czy mógłbyś uwzględnić na stronie {{LinkKomunikat2|Common.js}} część mojej strony, która jest po sekwencji /**/, będąca na stronie {{LinkUżytkownik2|Persino/common.js}}. W przypadku pierwszego algorytmu, dodałem tam klasy {{Code|mw-overflow-x}} i {{Code|mw-overflow-y}}, które ten algorytm rozpoznaje, i dla nich liczy, czy nastąpiło to właśnie przepełnienie. A wcześniej liczyło dla wszystkich znaczników na stronie, co spowalniało całą stronę. Tam, gdzie, ważne jest liczenie przepełnienie wstawiłem {{Code|mw-overflow-x}}, czy {{Code|mw-overflow-y}}, czyli algorytm ten tam powinien działać, co można sprawdzić na stronie głównej tego projektu ({{NAZWASERWISU|link=tak}}). Drugi algorytm jest rozszerzenie właściwości {{Code|position:sticky}}, który on nie działa, gdy choćby jeden z rodziców jest z nie {{Code|overflow:visible}}, ale z {{Code|overflow}}, a ja zrobiłem, że jednak zaczeło działać, a ja tak to zrobiłem: {{Code|position:sticky}} zastąpiłem {{Code|position:absolute}}, w tym znaczników ustawiam {{Code|mw-sticky-y}} (przesuw w pionie) lub {{Code|mw-sticky-x}} (przesuw w poziomie), wtedy ten algorytm JavaScript działa tak, że pudełko przesuwa się od pewnej granicy do pewnej, ale nigdy nie wychodzi poza te granice, czyli działa podobnie jak {{Code|position:sticky}}. Dziękuję za spełnienie mojej prośby. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 12:41, 9 lip 2022 (CEST) ==Aktualizacja skryptów na {{LinkKomunikat2|common.js}} z {{LinkUżytkownik2|Persino/common.js}}== {{Ping|Wargo}} Czy mógłbyś zaktualizować kod na stronie {{LinkKomunikat2|common.js}} ze strony {{LinkUżytkownik2|Persino/common.js}} pod znakiem {{Code|/**/}}. Zdefiniowałem przestrzeń nazw {{Code|Common}} definicją: {{Pre|var Common{{=}}new Array();}} Prawie wszystkie funkcje ze strony {{LinkKomunikat2|common.js}} przeniosłem do tej przestrzeni na stronie {{LinkUżytkownik2|Persino/common.js}} (tutaj wszystkie funkcje są w przestrzeni {{Code|Common}}). Rozwinąłem funkcję {{Code|Common.ScrollBarOverflow}}, {{Code|Common.StickyXY}} i {{Code|Common.OptimalXY}}. Napisałem od nowa funkcje: {{Code|Common.RamkiTableIDiv}} i {{Code|Common.ZdarzeniaDodatkoweFunkcyjneXY}} oraz funkcję do obsługi szablonu {{s|StronaStart}} i jego pokrewnych książkowych z definiowałem w postaci: {{Code|Common.StronaStart}}. Co oznaczają te funkcje: * {{Code|Common.ScrollBarOverflow}} - do generowania pewnych klas, które służą do obsługi pudełka z paskami przewijania, * {{Code|Common.StickyXY}} - aktualizacja funkcji {{Code|position:sticky}}, tam gdzie go nie można go użyć, do używamy tej funkcji, * {{Code|Common.OptimalXY}} - do obsługi boksów na stronach z użytymi szablonami stronicowymi książkowymi otwierającymi i zamykającymi, * {{Code|Common.RamkiTableIDiv}} - dodaje dalsze funkcje przy przyciskach tabel i ramek, nawigacyjnych, * {{Code|Common.ZdarzeniaDodatkoweFunkcyjneXY}} - dodaje zdarzenia do obsługi funkcji: {{Code|Common.StickyXY}} i {{Code|Common.OptimalXY}}, * {{Code|Common.StronaStart}} - służy do obsługi spisu treści i boksów szablonu {{s|StronaStart}}. Na stronach podręcznikowych boksy i spisy treści są responsywne według moich ustawień, a dla wszystkich użytkowników będą responsywne po zaktualizowaniu strony {{LinkKomunikat2|common.js}} przy pomocy {{LinkUżytkownik2|Persino/common.js}}. ---- Proszę o pilną reakcję i zrealizowanie mojej prośby. Z góry dziękuję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 15:55, 3 sie 2022 (CEST) :Czy coś jest do usunięcia z obecnego common.js? Tj. czy coś stamtąd mam tym zastąpić? [[Wikipedysta:Wargo|Wargo]] ([[Dyskusja wikipedysty:Wargo|dyskusja]]) 20:55, 7 sie 2022 (CEST) ::{{Ping|Wargo}}Właśnie masz zastąpić nową wersją z pod /**/ z: {{LinkUżytkownik2|Persino/common.js}}, zastępując całą zawartość strony w: {{LinkKomunikat2|common.js}}. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 21:04, 7 sie 2022 (CEST) :::{{Ping|Wargo}} Już możesz zastępować, wszystko gotowe! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 21:39, 7 sie 2022 (CEST) ===Ostatnia poprawka=== {{Ping|Wargo}}Czy mógłbyś linijkę kodu: {{Pre|var top_ab{{=}}rect_rodzic[top]-margintop; var bottom_ab{{=}}(wys-rect_rodzic[bottom])-marginbottom; }} poprawić na: {{Pre|var top_ab{{=}}rect_rodzic[top]; var bottom_ab{{=}}(wys-rect_rodzic[bottom]); }} w funkcji: {{Code|Common.StickyXY}}, w {{LinkKomunikat2|common.js}} według {{LinkUżytkownik2|Persino/common.js}}. Tj. to linijka: 481-482. Z góry dziękuję za spełnienie mojej prośby. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 09:51, 8 sie 2022 (CEST) === Miejmy nadzieję, że ostatnia poprawka na stronie {{LinkKomunikat2|common.js}} === {{Ping|Wargo}}Czy mógłbyś w kodzie w linii 177 i 183 na stronie {{LinkKomunikat2|common.js}} według {{LinkUżytkownik2|Persino/common.js}} poprawić według schematu: {{Pre |collapseTable( i ); }} zamienić na: {{Pre |Common.collapseTable( i ); }} Poprawka jest ważna, bo tabele nawigacyjne, na stronie głównej i gdzieś indziej, nie chcą się kolapsować, a po tej operacji już będą się tak zachowywać! Z góry dziękuję za spełnienie mojej prośby. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 12:59, 8 sie 2022 (CEST) 95ogglsnezvjkm1a2lmd6ns7gamqcsl 437188 437187 2022-08-08T11:17:20Z Persino 2851 /* Miejmy nadzieję, że ostatnia poprawka na stronie {{LinkKomunikat2|common.js}} */ wikitext text/x-wiki <noinclude>__LINKNOWEJSEKCJI__ [[Kategoria:Księga próśb i zadań]]</noinclude> {{fmbox|tekst=UWAGA: Nowe zgłoszenia o innym temacie niż to co dotyczy [[Wikibooks:Prośby do administratorów interfejsu/Zgłoszenia]] lub łamiące zasady [[Wikibooks:Wikietykieta|Wikietykiety]] mogą być bezwarunkowo wycofywane z tej strony}} <!-- Nowe zgłoszenia wstawiaj poniżej tej linii. Powyżej tej linii nic nie usuwaj. Nie usuwaj tej linii --> == Usunięcie wymuszenia białego tła w tabelach. == Zwracam się z prośbą o usunięcie [[MediaWiki:Common.css]] fragmentu <syntaxhighlight lang="css"> } + table.wikitable td, + table.prettytable td { + background: #f9f9f9; </syntaxhighlight> Fragment ten wymusza białe tło w tabelach, co uniemożliwia zastosowanie kolorowych komórek. Takowe bardzo by się przydały np. w opracowywanym przeze [[Zbiór zadań maturalnych/Biologia|Zbiorze zadań maturalnych z Biologii]] jak np. tu: [[:Kategoria:Zbiór zadań maturalnych/podstawa programowa 2017/Biologia/Zakres rozszerzony/Treści nauczania/II/3/1]]. Póki co posiłkuję się obramowaniem, chciałbym jednak docelowo zastosować kolorowanie komórek. Z góry dziękuję za rozpatrzenie mojej prośby. [[Wikipedysta:Superjurek|Superjurek]] ([[Dyskusja wikipedysty:Superjurek|dyskusja]]) 22:42, 16 kwi 2021 (CEST) ----- {{Ping|Superjurek}}Spróbuj użyć zapisu, np.: <syntaxhighlight lang="css"> background-color: blue !important; color:white !important; </syntaxhighlight> zamiast: <syntaxhighlight lang="css"> background-color: blue; color:white; </syntaxhighlight> to powinno naprawić cały problem! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 21:05, 27 maj 2022 (CEST) ==Wstawianie kodu do {{LinkKomunikat2|Common.js}}== Czy mógłbyś wsadzić do tej strony {{Code|.js}} kod: <syntaxhighlight lang="JavaScript"> function WyswietlStronyKsiazki(){ function WikikodTitle(data,tabs,titles,tabstrona){ var title=data.parse.title; var wikikod=data.parse.text['*']; var elements=tabstrona[title]; for(var q in elements){ elements[q].innerHTML=wikikod; var a=elements[q].getElementsByTagName('a'); if((a!==null)&&(a.length>0)){ var lena=a.length; for(var i=0;i<lena;++i){ var href=a[i].getAttribute('href'); if(href!==null){ var re=/^[^\?]+\?[^&]+=[^&]*&?/g; if(!re.test(href)){ var re2=/#/g; var s=href.search(re2); if(s!=-1){ var re=/^\/wiki\//g; if(re.test(href)){ var href2=href.substring(6,s) href2=decodeURI(href2); href2=href2.replace(/[_\s]+/g," "); for(var s=0;s<titles.length;s++){ var strona=titles[s]; if(href2==strona){ var href3=href.replace(/^[^#]*/g,""); var a_toc=a[i]; a_toc.setAttribute('href',encodeURI(href3)); a_toc.setAttribute("title",""); } } } }else{ var re=/^\/wiki\//g; if(re.test(href)){ var hrefv=href.replace(re,""); var hrefs=decodeURI(hrefv); hrefs=hrefs.replace(/[_\s]+/g," "); for(var s=0;s<titles.length;s++){ var strona=titles[s]; if(hrefs==strona){ var hrefs2=hrefv.replace(/^[^\/]*\//g,""); var a_toc=a[i]; a_toc.setAttribute('href','#'+hrefs2); a_toc.setAttribute("title",""); } } } } } } } } } var tab_toc=new Array("toc","toc_spis"); for(var d=0;d<tab_toc.length;++d){ var toc=document.getElementsByClassName(tab_toc[d]); if((toc!==null)&&(toc.length>0)){ for(var q in elements){ var num=new Array(); var v=0; for(var e=0;e<tabs.length;++e){ if(tabs[e]==title){ v+=1; if(parseInt(q)+1==v){ num.push(parseInt(e)+1); break; } } } var headline=elements[q].getElementsByClassName("mw-headline"); if((headline!==null)&&(headline.length>0)){ var ulozenie=0; var ostanie=0; var len=headline.length; var naglowek=""; var liczba_ulozenia_w_menu_spisu_tresci=1; var h_number=1; for (var k=0;k<len;++k){ var element2=headline[k]; var nag=element2.innerHTML; var nag2=element2.getAttribute('id'); var h=element2.parentNode.tagName; var h_numer=h.replace(/^[^\d]+/g,""); h_numer=parseInt(h_numer) if((ulozenie==0)||(ulozenie>=h_numer)){ ulozenie=h_numer-1; }else { if(ostatnie+1<h_numer-ulozenie){ ulozenie=h_numer-ostatnie-1; } } ostatnie=h_numer-ulozenie; h_numer=h_numer-ulozenie; if(k==0){ num.push(1); var nag="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext\">"+nag+"</span>"; naglowek+="<ul><li><a href=\"#"+nag2+"\">"+nag+"</a>"; }else{ if(h_numer==liczba_ulozenia_w_menu_spisu_tresci){ num[num.length-1]+=1; var nag="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext\">"+nag+"</span>"; naglowek+="</li><li><a href=\"#"+nag2+"\">"+nag+"</a>"; }else{ if(h_numer>liczba_ulozenia_w_menu_spisu_tresci){ num.push(1); var nag="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext\">"+nag+"</span>"; naglowek+="<ul><li><a href=\"#"+nag2+"\">"+nag+"</a>"; liczba_ulozenia_w_menu_spisu_tresci=h_numer; }else{ if(h_numer<liczba_ulozenia_w_menu_spisu_tresci){ num.splice(num.length-liczba_ulozenia_w_menu_spisu_tresci+h_numer,liczba_ulozenia_w_menu_spisu_tresci-h_numer); num[num.length-1]+=1; var nag="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext\">"+nag+"</span>"; naglowek+=('</li></ul>'.repeat(liczba_ulozenia_w_menu_spisu_tresci-h_numer))+"</li><li><a href=\"#"+nag2+"\">"+nag+"</a>"; liczba_ulozenia_w_menu_spisu_tresci=h_numer; } } } } } if(naglowek!=""){ naglowek+=('</li></ul>'.repeat(liczba_ulozenia_w_menu_spisu_tresci)); for(var b=0;b<toc.length;++b){ var a2=toc[b].getElementsByTagName('a'); if((a2!=null)&&(a2.length>0)){ for(var y=0;y<a2.length;++y){ var parent=a2[y].parentNode; var href=a2[y].getAttribute('href'); href=href.replace(/^#/g,""); var title2=title.replace(/^[^\/]+\//g,""); if(href==title2.replace(/[_ ]+/g,"_")+((q>0)?("_"+(parseInt(q)+1)):"")){ var div=document.createElement('div'); div.innerHTML=naglowek; var links=a2[y].getElementsByClassName('toctext'); if((links!=null)&&(links.length>0)){ var link=links[0].innerHTML; if(link==title2){ parent.appendChild(div.getElementsByTagName('ul')[0]); } } } } } } } } } } } for(var d=0;d<tab_toc.length;++d){ var toc_pos=document.getElementsByClassName(tab_toc[d]); if((toc_pos!==null)&&(toc_pos.length>0)){ for(var w=0;w<toc_pos.length;++w){ var li=toc_pos[w].getElementsByTagName('li'); var poziom; var section=1; for(var z=0;z<li.length;++z){ var parent=li[z].parentNode.parentNode; if(parent!==null){ var klasa=parent.getAttribute('class'); if(klasa!==null){ var poziom=klasa.match(/toclevel-\d+/g); if(poziom!==null){ poziom=parseInt(poziom.toString().match(/\d+$/).toString())+1; }else{ poziom=1; } }else{poziom=1;} }else{poziom=1;} var klasa=li[z].getAttribute('class'); if(klasa!==null){ var czy_section=klasa.match(/tocsection-\d+/); if(czy_section!==null){ klasa=klasa.replace(/tocsection-\d+/g,"tocsection-"+section); li[z].setAttribute('class',klasa); }else{ li[z].classList.add("tocsection-"+section); } var czy_level=klasa.match(/toclevel-\d+/); if(czy_level!==null){ klasa=li[z].getAttribute('class'); klasa=klasa.replace(/toclevel-\d+/g,"toclevel-"+poziom); li[z].setAttribute('class',klasa); }else{ li[z].classList.add("toclevel-"+poziom); } }else{ li[z].setAttribute('class',"toclevel-"+poziom+" tocsection-"+section) } section=section+1; } } } } var headline=document.getElementsByClassName('mw-headline'); if((headline)&&(headline.length>0)){ for(var i=0;i<headline.length;++i){ var c=1; var el=headline[i]; var id0=el.innerHTML; id0=id0.replace(/[_\s]+/g,"_"); id0=id0.replace(/<[^<>]+>/g,""); for(var j=0;j<i;++j){ var el1=headline[j]; var id1=el1.innerHTML; id1=id1.replace(/[_\s]+/g,"_"); id1=id1.replace(/<[^<>]+>/g,""); if(id0==id1){ ++c; } } if(c==1){ el.setAttribute('id',id0); }else{ el.setAttribute('id',id0+"_"+c); } } } var tab_toc=new Array("toc","toc_spis"); for(d=0;d<tab_toc.length;++d){ var toc_pos=document.getElementsByClassName(tab_toc[d]); if((toc_pos!==null)&&(toc_pos.length>0)){ for(var w=0;w<toc_pos.length;++w){ var toc=toc_pos[w]; var a=toc.getElementsByTagName('a'); if((a)&&(a.length>0)){ for(var p=0;p<a.length;++p){ var strona=a[p].getElementsByClassName('toctext')[0].innerHTML.replace(/[_\s]+/g,"_"); strona=strona.replace(/<[^<>]+>/g,""); var c=1; for(var v=0;v<p;++v){ var strona2; strona2=a[v].getElementsByClassName('toctext')[0].innerHTML.replace(/[_\s]+/g,"_"); strona2=strona2.replace(/<[^<>]+>/g,""); if(strona==strona2){ ++c; } } strona=strona.replace(/<[^<>]+>/g,""); if(c==1){ a[p].setAttribute('href',"#"+strona); }else{ a[p].setAttribute('href',"#"+strona+"_"+c); } } } } } } } function StronaSubst(data){ var wikikod=data.parse.text['*']; var elem=document.createElement('div'); elem.innerHTML=wikikod; var klasa_mw_parser_out=elem.getElementsByClassName('mw-parser-output'); var wikikod_wyodrepniony=(((klasa_mw_parser_out)&&(klasa_mw_parser_out.length==1))?(klasa_mw_parser_out[0].innerHTML):wikikod); var czy_wikikod=wikikod_wyodrepniony.match(/^\s*$/g); if(czy_wikikod){return;} var strona_subst="strona_subst"; var tagclass=document.getElementsByClassName(strona_subst); if(tagclass==null){return null;} var liczba_elementow=tagclass.length; if(liczba_elementow==0){return null;} var titles=new Array(); var tabstrona=new Array(); var tabs=new Array(); for (var i=0;i<liczba_elementow;++i){ var element=tagclass[i]; if(element.tagName!="DIV"){return null;} var strona=element.innerHTML; var re = /^[_ ]*$/g; var dopasowanie = re.test(strona); if(dopasowanie){return null;}; strona=strona.replace(/^[_ ]*/g,""); strona=strona.replace(/[_ ]*$/g,""); strona=strona.replace(/[_ ]+/g," "); tabs[i]=strona; var czy=false; for(var d in titles){ if(titles[d]==strona){ czy=true; break; } } if(!czy){ titles[titles.length]=strona; } if(tabstrona[strona]==null){ tabstrona[strona]=new Array(); } var tab=tabstrona[strona]; var tablen=tab.length; tabstrona[strona][tablen]=element; } for ( var p in titles ) { var strona=titles[p]; var api=new mw.Api; api.get({ action: 'parse', format: 'json', prop: 'text', title: strona, text: '{{:'+strona+'}}', disabletoc: true, disablelimitreport: true, contentmodel: 'wikitext' }).done(function(data){ WikikodTitle(data,tabs,titles,tabstrona); }); } } var strona = mw.config.get('wgPageName'); var api=new mw.Api; api.get({ action: 'parse', format: 'json', prop: 'text', title: strona, text: '{{#invoke:StronicowyParser|CzyStronaSubst}}', disabletoc: true, disablelimitreport: true, contentmodel: 'wikitext' }).done(function(data){ StronaSubst(data) }); } $(WyswietlStronyKsiazki); </syntaxhighlight> Ten program {{Code|.js}} znajduje się na stronie: {{LinkUżytkownik2|Persino/common.js}}. Jak wstawisz ten kod do strony {{LinkKomunikat2|Common.js}}, to powinno wtedy zadziałać ładowanie modułów książki, za pomocą JavaScript, na stronie {{LinkUżytkownik2|Persino/Wersja do druku}}. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 09:09, 13 lis 2021 (CET) == Gadżet StronaSubst - dodawanie do listy gadżetów == Mamy sobie kod JavaScript {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} i opis gadżetu {{LinkUżytkownik2|Persino/Gadget-StronaSubst}}, czy mógłbyś przenieść na strony w przestrzeni nazw {{Np|MediaWiki|link=tak}}, i wywołaniu gadżetu w takiej formie jak w {{LinkUżytkownik2|Persino/Gadgets-definition}} przenieść na stronę {{LinkKomunikat2|Gadgets-definition}}. Wtedy strona {{LinkUżytkownik2|Persino/Wersja do druku}} powinna działać! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 14:14, 27 lis 2021 (CET) === Zamienianie kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}} === {{Ping|Wargo}}Chodzi tutaj, że jak będzie link do artykułu w nagłówku, to, żeby nie pojawiało się pole '''[ artykuł | edytuj ]''' zamiast '''[ edytuj ]''' - aktualnie w {{LinkKomunikat2|Gadget-StronaSubst.js}} pole '''[ artykuł | edytuj ]''' pojawia się zawsze zamiast '''[ edytuj ]''', wtedy gdy ma zawartość '''strona_subst''' jest nie pusta, to algorytm jest zakańczany. A jak jest nazwa strony w zawartości div-a '''strona_subst''', a nie link w nagłówku, to wtedy ma się prawo pojawić '''[ artykuł | edytuj ]''' zamiast '''[ edytuj ]'''. Czy mógłbyś wersję {{LinkKomunikat2|Gadget-StronaSubst.js}} zamienić na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}. Z góry dziękuję za rozpatrzenie mojej prośby! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 10:13, 30 lis 2021 (CET) ---- {{Ping|Wargo}} Jeszcze, czy mógłbyś zamienić tekst w {{LinkKomunikat2|Gadget-StronaSubst}} z: {{Pre|(bez sekcji "Spis treści" i "Licencja")}} na {{Pre|(bez sekcji "Spis treści", "Bibliografia" i "Licencja")}} [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 19:18, 1 gru 2021 (CET) === Ostatnia poprawka kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}=== {{Ping|Wargo}}Chodzi tutaj, że algorytm zawiesza się na artykule {{LinkGłówna|Mechanika kwantowa/Mechanika kwantowa}}, to co poprawiłem już tak przestaje być, błąd znikł! Czy mógłbyś dokonać zamianę kodu? Proszę o pilną reakcję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 18:30, 3 gru 2021 (CET) === Miejmy nadzieję, że to jest ostatnia poprawka kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}=== {{Ping|Wargo}}Chodzi tutaj, że algorytm ma błędy JavaScript na stronie, przy danej książce: {{LinkGłówna|Szachy}}, czyli przy artykule: {{LinkGłówna|Szachy/Szachy}} - błąd tylko widać, gdy chcemy zbadać element, moja poprawka usuwa ten błąd! Czy mógłbyś dokonać zamianę kodu? Proszę o pilną reakcję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 15:50, 4 gru 2021 (CET) === Następna poprawka kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}} === {{Ping|Wargo}}Chodzi tutaj, że algorytm nie wyświetla w TOC (wbudowany spis treści) podrozdziałów dla artykułu {{LinkGłówna|Matematyka dla liceum/Matematyka dla liceum}}, moja poprawka usuwa ten błąd. Skrypt porządkuje artykuły według nagłówków na stronie tego artykułu w TOC, a zestaw artykułów, w danek sekcji, wyświetla, również w TOC, je przydzielone do niej. Czy mógłbyś dokonać zamianę kodu? Proszę o pilną reakcję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 14:51, 7 gru 2021 (CET) === Poważne poprawki w {{LinkKomunikat2|Gadget-StronaSubst.js}} na podstawie {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} oraz dodanie i zmiana pewnych gadżetów === {{Ping|Wargo}} Następne poprawki dotyczące wpisu w {{LinkKomunikat2|Gadget-StronaSubst.js}}, co do zauważonych drobnych błędów, czyli mógłbyś dokonać zamiany kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}. Z góry dziękuję. Poza tym wszystko działa, od razu dziękuję! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 19:32, 8 gru 2021 (CET) ---- {{Ping|Wargo}} Jeszcze, czy mógłbyś zamienić tekst w {{LinkKomunikat2|Gadget-StronaSubst}} z: {{Pre|(bez sekcji "Spis treści", "Bibliografia" i "Licencja")}} na {{Pre|(bez sekcji: "Spis treści", "Bibliografia", "Zobacz też", "Inne", "Licencja" i tym podobne)}} Dziękuję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 05:43, 9 gru 2021 (CET) ---- {{Ping|Wargo}} Czy mógłbyś uzupełnić {{LinkKomunikat2|Gadgets-definition}}, według {{LinkUżytkownik2|Persino/Gadgets-definition}} - szczególnie trzeba naprawić odwołanie do gadżetu StronaSubst, i dodać gadżety: {{LinkUżytkownik2|Persino/Gadget-gConfig.js}} (jego opis jest w {{LinkUżytkownik2|Persino/Gadget-gConfig}}), przenosząc go do {{LinkKomunikat2|Gadget-gConfig.js}} (jego opis do {{LinkKomunikat2|Gadget-gConfig}}), a także drugi gadżet dotyczący szablonu {{s|Cytuj}} przenieś z {{LinkUżytkownik2|Persino/Gadget-citation-access-info.js}} (jego opis to {{LinkUżytkownik2|Persino/Gadget-citation-access-info}}) do {{LinkKomunikat2|Gadget-citation-access-info.js}} (a jego opis do {{LinkKomunikat2|Gadget-citation-access-info}}). Gadżet '''gConfig''' potrzebny mi jest do gadżetu {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}}, którego zawartość należy przenieść do {{LinkKomunikat2|Gadget-StronaSubst.js}}, a gadżet {{LinkUżytkownik2|Persino/Gadget-citation-access-info.js}}, potrzebny mi jest do szablonu {{s|Cytuj}} do dymku do pełnej wersji tego szablonu, który należy przenieść do {{LinkKomunikat2|Gadget-citation-access-info.js}}. Proszę o pilną reakcję! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 15:04, 11 gru 2021 (CET) ---- Również proszę o zastąpienie strony komunikatu {{LinkKomunikat2|Gadget-map-toggler.js}} stroną {{LinkUżytkownik2|Persino/Gadget-map-toggler.js}}. Z góry dziękuję! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 18:38, 11 gru 2021 (CET) == Zamiana wartości linkowej i szablonowej == {{Ping|Wargo}}Czy mógłbyś zamienić na stronie: {{LinkUżytkownik2|Rychozol/common.js}}, z wartości: {{Nowiki|[[GNU Free Documentation License|GFDL]]}}, na: {{Nowiki|[[Wikibooks:GNU Free Documentation License|GFDL]]}}, a także na tej samej stronie wartość: {{s|clear}}, na {{s|BrClear}}, ponieważ ze względu na zmianę nazw stron. Z góry dziękuję! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 09:35, 13 gru 2021 (CET) <del>== Dalsze zmiany na stronach gadżetów (pilne) == {{Ping|Wargo}}Czy mógłbyś zainstalować gadżet "Gadget-gConfig", tak jak na stronie {{LinkUżytkownik2|Persino/Gadgets-definition}} (pierwsza linijka) w {{LinkKomunikat2|Gadgets-definition}}, a co do tego, jego kod {{LinkUżytkownik2|Persino/Gadget-gConfig.js}} zainstalować w miejscu {{LinkKomunikat2|Gadget-gConfig.js}} (jego opis jest w {{LinkUżytkownik2|Persino/Gadget-gConfig}}), przenosząc go do {{LinkKomunikat2|Gadget-gConfig.js}} (jego opis do {{LinkKomunikat2|Gadget-gConfig}}). A później zaaktualizuj gadżet {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}, a także zainstalować w miejscu {{LinkKomunikat2|Gadget-Funkcje.js}} gadżet {{LinkUżytkownik2|Persino/Gadget-Funkcje.js}}, a również zaktualizować wpis dla gadżetu StronaSubst tak jak w {{LinkUżytkownik2|Persino/Gadgets-definition}}. A później sprawdzić, czy wszystko działa. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 13:19, 4 lut 2022 (CET)</del> == Przepełnienie scrollbarów, poszczególnych elementów strony, a ustawienia różnych klas, jeżeli takowe istnieją == {{Ping|Wargo}}Czy mógłbyś uwzględnić na stronie {{LinkKomunikat2|Common.js}} część mojej strony, która jest po sekwencji /**/, będąca na stronie {{LinkUżytkownik2|Persino/common.js}}. Ten skrypt sprawdza, czy nastąpiło przepełnienie elementów strony dokumentu HTML Wikibooks, a jeżeli nastąpiło, to następuje ustawienie tam odpowiednich klas, a jeżeli ono znikło, to usunięcie tych klas. Ten skrypt jest mi potrzebny do szablonu {{s|StronaStart}} i jego pokrewnych oraz do mojego ustawienia skórki vector-2022, która jest w mojej przestrzeni użytkownika. Dziękuję za spełnienie mojej prośby. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 19:23, 27 maj 2022 (CEST) == Aktualizacja przepełnienia scrollbarów i implementacja sticky == {{Ping|Wargo}} Czy mógłbyś uwzględnić na stronie {{LinkKomunikat2|Common.js}} część mojej strony, która jest po sekwencji /**/, będąca na stronie {{LinkUżytkownik2|Persino/common.js}}. W przypadku pierwszego algorytmu, dodałem tam klasy {{Code|mw-overflow-x}} i {{Code|mw-overflow-y}}, które ten algorytm rozpoznaje, i dla nich liczy, czy nastąpiło to właśnie przepełnienie. A wcześniej liczyło dla wszystkich znaczników na stronie, co spowalniało całą stronę. Tam, gdzie, ważne jest liczenie przepełnienie wstawiłem {{Code|mw-overflow-x}}, czy {{Code|mw-overflow-y}}, czyli algorytm ten tam powinien działać, co można sprawdzić na stronie głównej tego projektu ({{NAZWASERWISU|link=tak}}). Drugi algorytm jest rozszerzenie właściwości {{Code|position:sticky}}, który on nie działa, gdy choćby jeden z rodziców jest z nie {{Code|overflow:visible}}, ale z {{Code|overflow}}, a ja zrobiłem, że jednak zaczeło działać, a ja tak to zrobiłem: {{Code|position:sticky}} zastąpiłem {{Code|position:absolute}}, w tym znaczników ustawiam {{Code|mw-sticky-y}} (przesuw w pionie) lub {{Code|mw-sticky-x}} (przesuw w poziomie), wtedy ten algorytm JavaScript działa tak, że pudełko przesuwa się od pewnej granicy do pewnej, ale nigdy nie wychodzi poza te granice, czyli działa podobnie jak {{Code|position:sticky}}. Dziękuję za spełnienie mojej prośby. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 12:41, 9 lip 2022 (CEST) ==Aktualizacja skryptów na {{LinkKomunikat2|common.js}} z {{LinkUżytkownik2|Persino/common.js}}== {{Ping|Wargo}} Czy mógłbyś zaktualizować kod na stronie {{LinkKomunikat2|common.js}} ze strony {{LinkUżytkownik2|Persino/common.js}} pod znakiem {{Code|/**/}}. Zdefiniowałem przestrzeń nazw {{Code|Common}} definicją: {{Pre|var Common{{=}}new Array();}} Prawie wszystkie funkcje ze strony {{LinkKomunikat2|common.js}} przeniosłem do tej przestrzeni na stronie {{LinkUżytkownik2|Persino/common.js}} (tutaj wszystkie funkcje są w przestrzeni {{Code|Common}}). Rozwinąłem funkcję {{Code|Common.ScrollBarOverflow}}, {{Code|Common.StickyXY}} i {{Code|Common.OptimalXY}}. Napisałem od nowa funkcje: {{Code|Common.RamkiTableIDiv}} i {{Code|Common.ZdarzeniaDodatkoweFunkcyjneXY}} oraz funkcję do obsługi szablonu {{s|StronaStart}} i jego pokrewnych książkowych z definiowałem w postaci: {{Code|Common.StronaStart}}. Co oznaczają te funkcje: * {{Code|Common.ScrollBarOverflow}} - do generowania pewnych klas, które służą do obsługi pudełka z paskami przewijania, * {{Code|Common.StickyXY}} - aktualizacja funkcji {{Code|position:sticky}}, tam gdzie go nie można go użyć, do używamy tej funkcji, * {{Code|Common.OptimalXY}} - do obsługi boksów na stronach z użytymi szablonami stronicowymi książkowymi otwierającymi i zamykającymi, * {{Code|Common.RamkiTableIDiv}} - dodaje dalsze funkcje przy przyciskach tabel i ramek, nawigacyjnych, * {{Code|Common.ZdarzeniaDodatkoweFunkcyjneXY}} - dodaje zdarzenia do obsługi funkcji: {{Code|Common.StickyXY}} i {{Code|Common.OptimalXY}}, * {{Code|Common.StronaStart}} - służy do obsługi spisu treści i boksów szablonu {{s|StronaStart}}. Na stronach podręcznikowych boksy i spisy treści są responsywne według moich ustawień, a dla wszystkich użytkowników będą responsywne po zaktualizowaniu strony {{LinkKomunikat2|common.js}} przy pomocy {{LinkUżytkownik2|Persino/common.js}}. ---- Proszę o pilną reakcję i zrealizowanie mojej prośby. Z góry dziękuję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 15:55, 3 sie 2022 (CEST) :Czy coś jest do usunięcia z obecnego common.js? Tj. czy coś stamtąd mam tym zastąpić? [[Wikipedysta:Wargo|Wargo]] ([[Dyskusja wikipedysty:Wargo|dyskusja]]) 20:55, 7 sie 2022 (CEST) ::{{Ping|Wargo}}Właśnie masz zastąpić nową wersją z pod /**/ z: {{LinkUżytkownik2|Persino/common.js}}, zastępując całą zawartość strony w: {{LinkKomunikat2|common.js}}. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 21:04, 7 sie 2022 (CEST) :::{{Ping|Wargo}} Już możesz zastępować, wszystko gotowe! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 21:39, 7 sie 2022 (CEST) ===Ostatnia poprawka=== {{Ping|Wargo}}Czy mógłbyś linijkę kodu: {{Pre|var top_ab{{=}}rect_rodzic[top]-margintop; var bottom_ab{{=}}(wys-rect_rodzic[bottom])-marginbottom; }} poprawić na: {{Pre|var top_ab{{=}}rect_rodzic[top]; var bottom_ab{{=}}(wys-rect_rodzic[bottom]); }} w funkcji: {{Code|Common.StickyXY}}, w {{LinkKomunikat2|common.js}} według {{LinkUżytkownik2|Persino/common.js}}. Tj. to linijka: 481-482. Z góry dziękuję za spełnienie mojej prośby. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 09:51, 8 sie 2022 (CEST) === Miejmy nadzieję, że ostatnia poprawka na stronie {{LinkKomunikat2|common.js}} === {{Ping|Wargo}}Czy mógłbyś w kodzie w linii: 177 i 183, na stronie {{LinkKomunikat2|common.js}} według {{LinkUżytkownik2|Persino/common.js}} poprawić według schematu: {{Pre |collapseTable( i ); }} zamienić na: {{Pre |Common.collapseTable( i ); }} Poprawka jest ważna, bo tabele nawigacyjne, na stronie głównej i gdzieś indziej, nie chcą się kolapsować, a po tej operacji już będą się tak zachowywać! Z góry dziękuję za spełnienie mojej prośby. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 12:59, 8 sie 2022 (CEST) 8pq3eftpj6cs6x6ek7vejitywik2pju 437191 437188 2022-08-08T11:34:17Z Persino 2851 /* Miejmy nadzieję, że ostatnia poprawka na stronie {{LinkKomunikat2|common.js}} */ wikitext text/x-wiki <noinclude>__LINKNOWEJSEKCJI__ [[Kategoria:Księga próśb i zadań]]</noinclude> {{fmbox|tekst=UWAGA: Nowe zgłoszenia o innym temacie niż to co dotyczy [[Wikibooks:Prośby do administratorów interfejsu/Zgłoszenia]] lub łamiące zasady [[Wikibooks:Wikietykieta|Wikietykiety]] mogą być bezwarunkowo wycofywane z tej strony}} <!-- Nowe zgłoszenia wstawiaj poniżej tej linii. Powyżej tej linii nic nie usuwaj. Nie usuwaj tej linii --> == Usunięcie wymuszenia białego tła w tabelach. == Zwracam się z prośbą o usunięcie [[MediaWiki:Common.css]] fragmentu <syntaxhighlight lang="css"> } + table.wikitable td, + table.prettytable td { + background: #f9f9f9; </syntaxhighlight> Fragment ten wymusza białe tło w tabelach, co uniemożliwia zastosowanie kolorowych komórek. Takowe bardzo by się przydały np. w opracowywanym przeze [[Zbiór zadań maturalnych/Biologia|Zbiorze zadań maturalnych z Biologii]] jak np. tu: [[:Kategoria:Zbiór zadań maturalnych/podstawa programowa 2017/Biologia/Zakres rozszerzony/Treści nauczania/II/3/1]]. Póki co posiłkuję się obramowaniem, chciałbym jednak docelowo zastosować kolorowanie komórek. Z góry dziękuję za rozpatrzenie mojej prośby. [[Wikipedysta:Superjurek|Superjurek]] ([[Dyskusja wikipedysty:Superjurek|dyskusja]]) 22:42, 16 kwi 2021 (CEST) ----- {{Ping|Superjurek}}Spróbuj użyć zapisu, np.: <syntaxhighlight lang="css"> background-color: blue !important; color:white !important; </syntaxhighlight> zamiast: <syntaxhighlight lang="css"> background-color: blue; color:white; </syntaxhighlight> to powinno naprawić cały problem! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 21:05, 27 maj 2022 (CEST) ==Wstawianie kodu do {{LinkKomunikat2|Common.js}}== Czy mógłbyś wsadzić do tej strony {{Code|.js}} kod: <syntaxhighlight lang="JavaScript"> function WyswietlStronyKsiazki(){ function WikikodTitle(data,tabs,titles,tabstrona){ var title=data.parse.title; var wikikod=data.parse.text['*']; var elements=tabstrona[title]; for(var q in elements){ elements[q].innerHTML=wikikod; var a=elements[q].getElementsByTagName('a'); if((a!==null)&&(a.length>0)){ var lena=a.length; for(var i=0;i<lena;++i){ var href=a[i].getAttribute('href'); if(href!==null){ var re=/^[^\?]+\?[^&]+=[^&]*&?/g; if(!re.test(href)){ var re2=/#/g; var s=href.search(re2); if(s!=-1){ var re=/^\/wiki\//g; if(re.test(href)){ var href2=href.substring(6,s) href2=decodeURI(href2); href2=href2.replace(/[_\s]+/g," "); for(var s=0;s<titles.length;s++){ var strona=titles[s]; if(href2==strona){ var href3=href.replace(/^[^#]*/g,""); var a_toc=a[i]; a_toc.setAttribute('href',encodeURI(href3)); a_toc.setAttribute("title",""); } } } }else{ var re=/^\/wiki\//g; if(re.test(href)){ var hrefv=href.replace(re,""); var hrefs=decodeURI(hrefv); hrefs=hrefs.replace(/[_\s]+/g," "); for(var s=0;s<titles.length;s++){ var strona=titles[s]; if(hrefs==strona){ var hrefs2=hrefv.replace(/^[^\/]*\//g,""); var a_toc=a[i]; a_toc.setAttribute('href','#'+hrefs2); a_toc.setAttribute("title",""); } } } } } } } } } var tab_toc=new Array("toc","toc_spis"); for(var d=0;d<tab_toc.length;++d){ var toc=document.getElementsByClassName(tab_toc[d]); if((toc!==null)&&(toc.length>0)){ for(var q in elements){ var num=new Array(); var v=0; for(var e=0;e<tabs.length;++e){ if(tabs[e]==title){ v+=1; if(parseInt(q)+1==v){ num.push(parseInt(e)+1); break; } } } var headline=elements[q].getElementsByClassName("mw-headline"); if((headline!==null)&&(headline.length>0)){ var ulozenie=0; var ostanie=0; var len=headline.length; var naglowek=""; var liczba_ulozenia_w_menu_spisu_tresci=1; var h_number=1; for (var k=0;k<len;++k){ var element2=headline[k]; var nag=element2.innerHTML; var nag2=element2.getAttribute('id'); var h=element2.parentNode.tagName; var h_numer=h.replace(/^[^\d]+/g,""); h_numer=parseInt(h_numer) if((ulozenie==0)||(ulozenie>=h_numer)){ ulozenie=h_numer-1; }else { if(ostatnie+1<h_numer-ulozenie){ ulozenie=h_numer-ostatnie-1; } } ostatnie=h_numer-ulozenie; h_numer=h_numer-ulozenie; if(k==0){ num.push(1); var nag="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext\">"+nag+"</span>"; naglowek+="<ul><li><a href=\"#"+nag2+"\">"+nag+"</a>"; }else{ if(h_numer==liczba_ulozenia_w_menu_spisu_tresci){ num[num.length-1]+=1; var nag="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext\">"+nag+"</span>"; naglowek+="</li><li><a href=\"#"+nag2+"\">"+nag+"</a>"; }else{ if(h_numer>liczba_ulozenia_w_menu_spisu_tresci){ num.push(1); var nag="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext\">"+nag+"</span>"; naglowek+="<ul><li><a href=\"#"+nag2+"\">"+nag+"</a>"; liczba_ulozenia_w_menu_spisu_tresci=h_numer; }else{ if(h_numer<liczba_ulozenia_w_menu_spisu_tresci){ num.splice(num.length-liczba_ulozenia_w_menu_spisu_tresci+h_numer,liczba_ulozenia_w_menu_spisu_tresci-h_numer); num[num.length-1]+=1; var nag="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext\">"+nag+"</span>"; naglowek+=('</li></ul>'.repeat(liczba_ulozenia_w_menu_spisu_tresci-h_numer))+"</li><li><a href=\"#"+nag2+"\">"+nag+"</a>"; liczba_ulozenia_w_menu_spisu_tresci=h_numer; } } } } } if(naglowek!=""){ naglowek+=('</li></ul>'.repeat(liczba_ulozenia_w_menu_spisu_tresci)); for(var b=0;b<toc.length;++b){ var a2=toc[b].getElementsByTagName('a'); if((a2!=null)&&(a2.length>0)){ for(var y=0;y<a2.length;++y){ var parent=a2[y].parentNode; var href=a2[y].getAttribute('href'); href=href.replace(/^#/g,""); var title2=title.replace(/^[^\/]+\//g,""); if(href==title2.replace(/[_ ]+/g,"_")+((q>0)?("_"+(parseInt(q)+1)):"")){ var div=document.createElement('div'); div.innerHTML=naglowek; var links=a2[y].getElementsByClassName('toctext'); if((links!=null)&&(links.length>0)){ var link=links[0].innerHTML; if(link==title2){ parent.appendChild(div.getElementsByTagName('ul')[0]); } } } } } } } } } } } for(var d=0;d<tab_toc.length;++d){ var toc_pos=document.getElementsByClassName(tab_toc[d]); if((toc_pos!==null)&&(toc_pos.length>0)){ for(var w=0;w<toc_pos.length;++w){ var li=toc_pos[w].getElementsByTagName('li'); var poziom; var section=1; for(var z=0;z<li.length;++z){ var parent=li[z].parentNode.parentNode; if(parent!==null){ var klasa=parent.getAttribute('class'); if(klasa!==null){ var poziom=klasa.match(/toclevel-\d+/g); if(poziom!==null){ poziom=parseInt(poziom.toString().match(/\d+$/).toString())+1; }else{ poziom=1; } }else{poziom=1;} }else{poziom=1;} var klasa=li[z].getAttribute('class'); if(klasa!==null){ var czy_section=klasa.match(/tocsection-\d+/); if(czy_section!==null){ klasa=klasa.replace(/tocsection-\d+/g,"tocsection-"+section); li[z].setAttribute('class',klasa); }else{ li[z].classList.add("tocsection-"+section); } var czy_level=klasa.match(/toclevel-\d+/); if(czy_level!==null){ klasa=li[z].getAttribute('class'); klasa=klasa.replace(/toclevel-\d+/g,"toclevel-"+poziom); li[z].setAttribute('class',klasa); }else{ li[z].classList.add("toclevel-"+poziom); } }else{ li[z].setAttribute('class',"toclevel-"+poziom+" tocsection-"+section) } section=section+1; } } } } var headline=document.getElementsByClassName('mw-headline'); if((headline)&&(headline.length>0)){ for(var i=0;i<headline.length;++i){ var c=1; var el=headline[i]; var id0=el.innerHTML; id0=id0.replace(/[_\s]+/g,"_"); id0=id0.replace(/<[^<>]+>/g,""); for(var j=0;j<i;++j){ var el1=headline[j]; var id1=el1.innerHTML; id1=id1.replace(/[_\s]+/g,"_"); id1=id1.replace(/<[^<>]+>/g,""); if(id0==id1){ ++c; } } if(c==1){ el.setAttribute('id',id0); }else{ el.setAttribute('id',id0+"_"+c); } } } var tab_toc=new Array("toc","toc_spis"); for(d=0;d<tab_toc.length;++d){ var toc_pos=document.getElementsByClassName(tab_toc[d]); if((toc_pos!==null)&&(toc_pos.length>0)){ for(var w=0;w<toc_pos.length;++w){ var toc=toc_pos[w]; var a=toc.getElementsByTagName('a'); if((a)&&(a.length>0)){ for(var p=0;p<a.length;++p){ var strona=a[p].getElementsByClassName('toctext')[0].innerHTML.replace(/[_\s]+/g,"_"); strona=strona.replace(/<[^<>]+>/g,""); var c=1; for(var v=0;v<p;++v){ var strona2; strona2=a[v].getElementsByClassName('toctext')[0].innerHTML.replace(/[_\s]+/g,"_"); strona2=strona2.replace(/<[^<>]+>/g,""); if(strona==strona2){ ++c; } } strona=strona.replace(/<[^<>]+>/g,""); if(c==1){ a[p].setAttribute('href',"#"+strona); }else{ a[p].setAttribute('href',"#"+strona+"_"+c); } } } } } } } function StronaSubst(data){ var wikikod=data.parse.text['*']; var elem=document.createElement('div'); elem.innerHTML=wikikod; var klasa_mw_parser_out=elem.getElementsByClassName('mw-parser-output'); var wikikod_wyodrepniony=(((klasa_mw_parser_out)&&(klasa_mw_parser_out.length==1))?(klasa_mw_parser_out[0].innerHTML):wikikod); var czy_wikikod=wikikod_wyodrepniony.match(/^\s*$/g); if(czy_wikikod){return;} var strona_subst="strona_subst"; var tagclass=document.getElementsByClassName(strona_subst); if(tagclass==null){return null;} var liczba_elementow=tagclass.length; if(liczba_elementow==0){return null;} var titles=new Array(); var tabstrona=new Array(); var tabs=new Array(); for (var i=0;i<liczba_elementow;++i){ var element=tagclass[i]; if(element.tagName!="DIV"){return null;} var strona=element.innerHTML; var re = /^[_ ]*$/g; var dopasowanie = re.test(strona); if(dopasowanie){return null;}; strona=strona.replace(/^[_ ]*/g,""); strona=strona.replace(/[_ ]*$/g,""); strona=strona.replace(/[_ ]+/g," "); tabs[i]=strona; var czy=false; for(var d in titles){ if(titles[d]==strona){ czy=true; break; } } if(!czy){ titles[titles.length]=strona; } if(tabstrona[strona]==null){ tabstrona[strona]=new Array(); } var tab=tabstrona[strona]; var tablen=tab.length; tabstrona[strona][tablen]=element; } for ( var p in titles ) { var strona=titles[p]; var api=new mw.Api; api.get({ action: 'parse', format: 'json', prop: 'text', title: strona, text: '{{:'+strona+'}}', disabletoc: true, disablelimitreport: true, contentmodel: 'wikitext' }).done(function(data){ WikikodTitle(data,tabs,titles,tabstrona); }); } } var strona = mw.config.get('wgPageName'); var api=new mw.Api; api.get({ action: 'parse', format: 'json', prop: 'text', title: strona, text: '{{#invoke:StronicowyParser|CzyStronaSubst}}', disabletoc: true, disablelimitreport: true, contentmodel: 'wikitext' }).done(function(data){ StronaSubst(data) }); } $(WyswietlStronyKsiazki); </syntaxhighlight> Ten program {{Code|.js}} znajduje się na stronie: {{LinkUżytkownik2|Persino/common.js}}. Jak wstawisz ten kod do strony {{LinkKomunikat2|Common.js}}, to powinno wtedy zadziałać ładowanie modułów książki, za pomocą JavaScript, na stronie {{LinkUżytkownik2|Persino/Wersja do druku}}. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 09:09, 13 lis 2021 (CET) == Gadżet StronaSubst - dodawanie do listy gadżetów == Mamy sobie kod JavaScript {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} i opis gadżetu {{LinkUżytkownik2|Persino/Gadget-StronaSubst}}, czy mógłbyś przenieść na strony w przestrzeni nazw {{Np|MediaWiki|link=tak}}, i wywołaniu gadżetu w takiej formie jak w {{LinkUżytkownik2|Persino/Gadgets-definition}} przenieść na stronę {{LinkKomunikat2|Gadgets-definition}}. Wtedy strona {{LinkUżytkownik2|Persino/Wersja do druku}} powinna działać! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 14:14, 27 lis 2021 (CET) === Zamienianie kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}} === {{Ping|Wargo}}Chodzi tutaj, że jak będzie link do artykułu w nagłówku, to, żeby nie pojawiało się pole '''[ artykuł | edytuj ]''' zamiast '''[ edytuj ]''' - aktualnie w {{LinkKomunikat2|Gadget-StronaSubst.js}} pole '''[ artykuł | edytuj ]''' pojawia się zawsze zamiast '''[ edytuj ]''', wtedy gdy ma zawartość '''strona_subst''' jest nie pusta, to algorytm jest zakańczany. A jak jest nazwa strony w zawartości div-a '''strona_subst''', a nie link w nagłówku, to wtedy ma się prawo pojawić '''[ artykuł | edytuj ]''' zamiast '''[ edytuj ]'''. Czy mógłbyś wersję {{LinkKomunikat2|Gadget-StronaSubst.js}} zamienić na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}. Z góry dziękuję za rozpatrzenie mojej prośby! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 10:13, 30 lis 2021 (CET) ---- {{Ping|Wargo}} Jeszcze, czy mógłbyś zamienić tekst w {{LinkKomunikat2|Gadget-StronaSubst}} z: {{Pre|(bez sekcji "Spis treści" i "Licencja")}} na {{Pre|(bez sekcji "Spis treści", "Bibliografia" i "Licencja")}} [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 19:18, 1 gru 2021 (CET) === Ostatnia poprawka kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}=== {{Ping|Wargo}}Chodzi tutaj, że algorytm zawiesza się na artykule {{LinkGłówna|Mechanika kwantowa/Mechanika kwantowa}}, to co poprawiłem już tak przestaje być, błąd znikł! Czy mógłbyś dokonać zamianę kodu? Proszę o pilną reakcję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 18:30, 3 gru 2021 (CET) === Miejmy nadzieję, że to jest ostatnia poprawka kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}=== {{Ping|Wargo}}Chodzi tutaj, że algorytm ma błędy JavaScript na stronie, przy danej książce: {{LinkGłówna|Szachy}}, czyli przy artykule: {{LinkGłówna|Szachy/Szachy}} - błąd tylko widać, gdy chcemy zbadać element, moja poprawka usuwa ten błąd! Czy mógłbyś dokonać zamianę kodu? Proszę o pilną reakcję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 15:50, 4 gru 2021 (CET) === Następna poprawka kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}} === {{Ping|Wargo}}Chodzi tutaj, że algorytm nie wyświetla w TOC (wbudowany spis treści) podrozdziałów dla artykułu {{LinkGłówna|Matematyka dla liceum/Matematyka dla liceum}}, moja poprawka usuwa ten błąd. Skrypt porządkuje artykuły według nagłówków na stronie tego artykułu w TOC, a zestaw artykułów, w danek sekcji, wyświetla, również w TOC, je przydzielone do niej. Czy mógłbyś dokonać zamianę kodu? Proszę o pilną reakcję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 14:51, 7 gru 2021 (CET) === Poważne poprawki w {{LinkKomunikat2|Gadget-StronaSubst.js}} na podstawie {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} oraz dodanie i zmiana pewnych gadżetów === {{Ping|Wargo}} Następne poprawki dotyczące wpisu w {{LinkKomunikat2|Gadget-StronaSubst.js}}, co do zauważonych drobnych błędów, czyli mógłbyś dokonać zamiany kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}. Z góry dziękuję. Poza tym wszystko działa, od razu dziękuję! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 19:32, 8 gru 2021 (CET) ---- {{Ping|Wargo}} Jeszcze, czy mógłbyś zamienić tekst w {{LinkKomunikat2|Gadget-StronaSubst}} z: {{Pre|(bez sekcji "Spis treści", "Bibliografia" i "Licencja")}} na {{Pre|(bez sekcji: "Spis treści", "Bibliografia", "Zobacz też", "Inne", "Licencja" i tym podobne)}} Dziękuję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 05:43, 9 gru 2021 (CET) ---- {{Ping|Wargo}} Czy mógłbyś uzupełnić {{LinkKomunikat2|Gadgets-definition}}, według {{LinkUżytkownik2|Persino/Gadgets-definition}} - szczególnie trzeba naprawić odwołanie do gadżetu StronaSubst, i dodać gadżety: {{LinkUżytkownik2|Persino/Gadget-gConfig.js}} (jego opis jest w {{LinkUżytkownik2|Persino/Gadget-gConfig}}), przenosząc go do {{LinkKomunikat2|Gadget-gConfig.js}} (jego opis do {{LinkKomunikat2|Gadget-gConfig}}), a także drugi gadżet dotyczący szablonu {{s|Cytuj}} przenieś z {{LinkUżytkownik2|Persino/Gadget-citation-access-info.js}} (jego opis to {{LinkUżytkownik2|Persino/Gadget-citation-access-info}}) do {{LinkKomunikat2|Gadget-citation-access-info.js}} (a jego opis do {{LinkKomunikat2|Gadget-citation-access-info}}). Gadżet '''gConfig''' potrzebny mi jest do gadżetu {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}}, którego zawartość należy przenieść do {{LinkKomunikat2|Gadget-StronaSubst.js}}, a gadżet {{LinkUżytkownik2|Persino/Gadget-citation-access-info.js}}, potrzebny mi jest do szablonu {{s|Cytuj}} do dymku do pełnej wersji tego szablonu, który należy przenieść do {{LinkKomunikat2|Gadget-citation-access-info.js}}. Proszę o pilną reakcję! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 15:04, 11 gru 2021 (CET) ---- Również proszę o zastąpienie strony komunikatu {{LinkKomunikat2|Gadget-map-toggler.js}} stroną {{LinkUżytkownik2|Persino/Gadget-map-toggler.js}}. Z góry dziękuję! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 18:38, 11 gru 2021 (CET) == Zamiana wartości linkowej i szablonowej == {{Ping|Wargo}}Czy mógłbyś zamienić na stronie: {{LinkUżytkownik2|Rychozol/common.js}}, z wartości: {{Nowiki|[[GNU Free Documentation License|GFDL]]}}, na: {{Nowiki|[[Wikibooks:GNU Free Documentation License|GFDL]]}}, a także na tej samej stronie wartość: {{s|clear}}, na {{s|BrClear}}, ponieważ ze względu na zmianę nazw stron. Z góry dziękuję! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 09:35, 13 gru 2021 (CET) <del>== Dalsze zmiany na stronach gadżetów (pilne) == {{Ping|Wargo}}Czy mógłbyś zainstalować gadżet "Gadget-gConfig", tak jak na stronie {{LinkUżytkownik2|Persino/Gadgets-definition}} (pierwsza linijka) w {{LinkKomunikat2|Gadgets-definition}}, a co do tego, jego kod {{LinkUżytkownik2|Persino/Gadget-gConfig.js}} zainstalować w miejscu {{LinkKomunikat2|Gadget-gConfig.js}} (jego opis jest w {{LinkUżytkownik2|Persino/Gadget-gConfig}}), przenosząc go do {{LinkKomunikat2|Gadget-gConfig.js}} (jego opis do {{LinkKomunikat2|Gadget-gConfig}}). A później zaaktualizuj gadżet {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}, a także zainstalować w miejscu {{LinkKomunikat2|Gadget-Funkcje.js}} gadżet {{LinkUżytkownik2|Persino/Gadget-Funkcje.js}}, a również zaktualizować wpis dla gadżetu StronaSubst tak jak w {{LinkUżytkownik2|Persino/Gadgets-definition}}. A później sprawdzić, czy wszystko działa. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 13:19, 4 lut 2022 (CET)</del> == Przepełnienie scrollbarów, poszczególnych elementów strony, a ustawienia różnych klas, jeżeli takowe istnieją == {{Ping|Wargo}}Czy mógłbyś uwzględnić na stronie {{LinkKomunikat2|Common.js}} część mojej strony, która jest po sekwencji /**/, będąca na stronie {{LinkUżytkownik2|Persino/common.js}}. Ten skrypt sprawdza, czy nastąpiło przepełnienie elementów strony dokumentu HTML Wikibooks, a jeżeli nastąpiło, to następuje ustawienie tam odpowiednich klas, a jeżeli ono znikło, to usunięcie tych klas. Ten skrypt jest mi potrzebny do szablonu {{s|StronaStart}} i jego pokrewnych oraz do mojego ustawienia skórki vector-2022, która jest w mojej przestrzeni użytkownika. Dziękuję za spełnienie mojej prośby. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 19:23, 27 maj 2022 (CEST) == Aktualizacja przepełnienia scrollbarów i implementacja sticky == {{Ping|Wargo}} Czy mógłbyś uwzględnić na stronie {{LinkKomunikat2|Common.js}} część mojej strony, która jest po sekwencji /**/, będąca na stronie {{LinkUżytkownik2|Persino/common.js}}. W przypadku pierwszego algorytmu, dodałem tam klasy {{Code|mw-overflow-x}} i {{Code|mw-overflow-y}}, które ten algorytm rozpoznaje, i dla nich liczy, czy nastąpiło to właśnie przepełnienie. A wcześniej liczyło dla wszystkich znaczników na stronie, co spowalniało całą stronę. Tam, gdzie, ważne jest liczenie przepełnienie wstawiłem {{Code|mw-overflow-x}}, czy {{Code|mw-overflow-y}}, czyli algorytm ten tam powinien działać, co można sprawdzić na stronie głównej tego projektu ({{NAZWASERWISU|link=tak}}). Drugi algorytm jest rozszerzenie właściwości {{Code|position:sticky}}, który on nie działa, gdy choćby jeden z rodziców jest z nie {{Code|overflow:visible}}, ale z {{Code|overflow}}, a ja zrobiłem, że jednak zaczeło działać, a ja tak to zrobiłem: {{Code|position:sticky}} zastąpiłem {{Code|position:absolute}}, w tym znaczników ustawiam {{Code|mw-sticky-y}} (przesuw w pionie) lub {{Code|mw-sticky-x}} (przesuw w poziomie), wtedy ten algorytm JavaScript działa tak, że pudełko przesuwa się od pewnej granicy do pewnej, ale nigdy nie wychodzi poza te granice, czyli działa podobnie jak {{Code|position:sticky}}. Dziękuję za spełnienie mojej prośby. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 12:41, 9 lip 2022 (CEST) ==Aktualizacja skryptów na {{LinkKomunikat2|common.js}} z {{LinkUżytkownik2|Persino/common.js}}== {{Ping|Wargo}} Czy mógłbyś zaktualizować kod na stronie {{LinkKomunikat2|common.js}} ze strony {{LinkUżytkownik2|Persino/common.js}} pod znakiem {{Code|/**/}}. Zdefiniowałem przestrzeń nazw {{Code|Common}} definicją: {{Pre|var Common{{=}}new Array();}} Prawie wszystkie funkcje ze strony {{LinkKomunikat2|common.js}} przeniosłem do tej przestrzeni na stronie {{LinkUżytkownik2|Persino/common.js}} (tutaj wszystkie funkcje są w przestrzeni {{Code|Common}}). Rozwinąłem funkcję {{Code|Common.ScrollBarOverflow}}, {{Code|Common.StickyXY}} i {{Code|Common.OptimalXY}}. Napisałem od nowa funkcje: {{Code|Common.RamkiTableIDiv}} i {{Code|Common.ZdarzeniaDodatkoweFunkcyjneXY}} oraz funkcję do obsługi szablonu {{s|StronaStart}} i jego pokrewnych książkowych z definiowałem w postaci: {{Code|Common.StronaStart}}. Co oznaczają te funkcje: * {{Code|Common.ScrollBarOverflow}} - do generowania pewnych klas, które służą do obsługi pudełka z paskami przewijania, * {{Code|Common.StickyXY}} - aktualizacja funkcji {{Code|position:sticky}}, tam gdzie go nie można go użyć, do używamy tej funkcji, * {{Code|Common.OptimalXY}} - do obsługi boksów na stronach z użytymi szablonami stronicowymi książkowymi otwierającymi i zamykającymi, * {{Code|Common.RamkiTableIDiv}} - dodaje dalsze funkcje przy przyciskach tabel i ramek, nawigacyjnych, * {{Code|Common.ZdarzeniaDodatkoweFunkcyjneXY}} - dodaje zdarzenia do obsługi funkcji: {{Code|Common.StickyXY}} i {{Code|Common.OptimalXY}}, * {{Code|Common.StronaStart}} - służy do obsługi spisu treści i boksów szablonu {{s|StronaStart}}. Na stronach podręcznikowych boksy i spisy treści są responsywne według moich ustawień, a dla wszystkich użytkowników będą responsywne po zaktualizowaniu strony {{LinkKomunikat2|common.js}} przy pomocy {{LinkUżytkownik2|Persino/common.js}}. ---- Proszę o pilną reakcję i zrealizowanie mojej prośby. Z góry dziękuję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 15:55, 3 sie 2022 (CEST) :Czy coś jest do usunięcia z obecnego common.js? Tj. czy coś stamtąd mam tym zastąpić? [[Wikipedysta:Wargo|Wargo]] ([[Dyskusja wikipedysty:Wargo|dyskusja]]) 20:55, 7 sie 2022 (CEST) ::{{Ping|Wargo}}Właśnie masz zastąpić nową wersją z pod /**/ z: {{LinkUżytkownik2|Persino/common.js}}, zastępując całą zawartość strony w: {{LinkKomunikat2|common.js}}. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 21:04, 7 sie 2022 (CEST) :::{{Ping|Wargo}} Już możesz zastępować, wszystko gotowe! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 21:39, 7 sie 2022 (CEST) ===Ostatnia poprawka=== {{Ping|Wargo}}Czy mógłbyś linijkę kodu: {{Pre|var top_ab{{=}}rect_rodzic[top]-margintop; var bottom_ab{{=}}(wys-rect_rodzic[bottom])-marginbottom; }} poprawić na: {{Pre|var top_ab{{=}}rect_rodzic[top]; var bottom_ab{{=}}(wys-rect_rodzic[bottom]); }} w funkcji: {{Code|Common.StickyXY}}, w {{LinkKomunikat2|common.js}} według {{LinkUżytkownik2|Persino/common.js}}. Tj. to linijka: 481-482. Z góry dziękuję za spełnienie mojej prośby. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 09:51, 8 sie 2022 (CEST) === Miejmy nadzieję, że ostatnia poprawka na stronie {{LinkKomunikat2|common.js}} === {{Ping|Wargo}}Czy mógłbyś w kodzie w linii: 177 i 183, na stronie {{LinkKomunikat2|common.js}} według {{LinkUżytkownik2|Persino/common.js}} poprawić według schematu: {{Pre |collapseTable( i ); }} zamienić na: {{Pre |Common.collapseTable( i ); }} Poprawka jest ważna, bo tabele nawigacyjne, na stronie głównej i gdzieś indziej, nie chcą się kolapsować, a po tej operacji już będą się tak zachowywać! ---- W linii: 176 poprawić: {{Pre |1=if ( $(NavigationBoxes[i]).hasClass( "collapsed" ) {{!}}{{!}} ( tableIndex >= Common.autoCollapse && $(NavigationBoxes[i]).hasClass( "Common.autoCollapse" ) ) ) { }} na kod: {{Pre |1=if ( $(NavigationBoxes[i]).hasClass( "collapsed" ) {{!}}{{!}} ( tableIndex >= Common.autoCollapse && $(NavigationBoxes[i]).hasClass( "autocollapse" ) ) ) { }} Z góry dziękuję za spełnienie mojej prośby. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 13:34, 8 sie 2022 (CEST) md3krrck9wfmkicwof7fsjph7a0flc3 437192 437191 2022-08-08T11:42:56Z Persino 2851 /* Miejmy nadzieję, że ostatnia poprawka na stronie {{LinkKomunikat2|common.js}} */ wikitext text/x-wiki <noinclude>__LINKNOWEJSEKCJI__ [[Kategoria:Księga próśb i zadań]]</noinclude> {{fmbox|tekst=UWAGA: Nowe zgłoszenia o innym temacie niż to co dotyczy [[Wikibooks:Prośby do administratorów interfejsu/Zgłoszenia]] lub łamiące zasady [[Wikibooks:Wikietykieta|Wikietykiety]] mogą być bezwarunkowo wycofywane z tej strony}} <!-- Nowe zgłoszenia wstawiaj poniżej tej linii. Powyżej tej linii nic nie usuwaj. Nie usuwaj tej linii --> == Usunięcie wymuszenia białego tła w tabelach. == Zwracam się z prośbą o usunięcie [[MediaWiki:Common.css]] fragmentu <syntaxhighlight lang="css"> } + table.wikitable td, + table.prettytable td { + background: #f9f9f9; </syntaxhighlight> Fragment ten wymusza białe tło w tabelach, co uniemożliwia zastosowanie kolorowych komórek. Takowe bardzo by się przydały np. w opracowywanym przeze [[Zbiór zadań maturalnych/Biologia|Zbiorze zadań maturalnych z Biologii]] jak np. tu: [[:Kategoria:Zbiór zadań maturalnych/podstawa programowa 2017/Biologia/Zakres rozszerzony/Treści nauczania/II/3/1]]. Póki co posiłkuję się obramowaniem, chciałbym jednak docelowo zastosować kolorowanie komórek. Z góry dziękuję za rozpatrzenie mojej prośby. [[Wikipedysta:Superjurek|Superjurek]] ([[Dyskusja wikipedysty:Superjurek|dyskusja]]) 22:42, 16 kwi 2021 (CEST) ----- {{Ping|Superjurek}}Spróbuj użyć zapisu, np.: <syntaxhighlight lang="css"> background-color: blue !important; color:white !important; </syntaxhighlight> zamiast: <syntaxhighlight lang="css"> background-color: blue; color:white; </syntaxhighlight> to powinno naprawić cały problem! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 21:05, 27 maj 2022 (CEST) ==Wstawianie kodu do {{LinkKomunikat2|Common.js}}== Czy mógłbyś wsadzić do tej strony {{Code|.js}} kod: <syntaxhighlight lang="JavaScript"> function WyswietlStronyKsiazki(){ function WikikodTitle(data,tabs,titles,tabstrona){ var title=data.parse.title; var wikikod=data.parse.text['*']; var elements=tabstrona[title]; for(var q in elements){ elements[q].innerHTML=wikikod; var a=elements[q].getElementsByTagName('a'); if((a!==null)&&(a.length>0)){ var lena=a.length; for(var i=0;i<lena;++i){ var href=a[i].getAttribute('href'); if(href!==null){ var re=/^[^\?]+\?[^&]+=[^&]*&?/g; if(!re.test(href)){ var re2=/#/g; var s=href.search(re2); if(s!=-1){ var re=/^\/wiki\//g; if(re.test(href)){ var href2=href.substring(6,s) href2=decodeURI(href2); href2=href2.replace(/[_\s]+/g," "); for(var s=0;s<titles.length;s++){ var strona=titles[s]; if(href2==strona){ var href3=href.replace(/^[^#]*/g,""); var a_toc=a[i]; a_toc.setAttribute('href',encodeURI(href3)); a_toc.setAttribute("title",""); } } } }else{ var re=/^\/wiki\//g; if(re.test(href)){ var hrefv=href.replace(re,""); var hrefs=decodeURI(hrefv); hrefs=hrefs.replace(/[_\s]+/g," "); for(var s=0;s<titles.length;s++){ var strona=titles[s]; if(hrefs==strona){ var hrefs2=hrefv.replace(/^[^\/]*\//g,""); var a_toc=a[i]; a_toc.setAttribute('href','#'+hrefs2); a_toc.setAttribute("title",""); } } } } } } } } } var tab_toc=new Array("toc","toc_spis"); for(var d=0;d<tab_toc.length;++d){ var toc=document.getElementsByClassName(tab_toc[d]); if((toc!==null)&&(toc.length>0)){ for(var q in elements){ var num=new Array(); var v=0; for(var e=0;e<tabs.length;++e){ if(tabs[e]==title){ v+=1; if(parseInt(q)+1==v){ num.push(parseInt(e)+1); break; } } } var headline=elements[q].getElementsByClassName("mw-headline"); if((headline!==null)&&(headline.length>0)){ var ulozenie=0; var ostanie=0; var len=headline.length; var naglowek=""; var liczba_ulozenia_w_menu_spisu_tresci=1; var h_number=1; for (var k=0;k<len;++k){ var element2=headline[k]; var nag=element2.innerHTML; var nag2=element2.getAttribute('id'); var h=element2.parentNode.tagName; var h_numer=h.replace(/^[^\d]+/g,""); h_numer=parseInt(h_numer) if((ulozenie==0)||(ulozenie>=h_numer)){ ulozenie=h_numer-1; }else { if(ostatnie+1<h_numer-ulozenie){ ulozenie=h_numer-ostatnie-1; } } ostatnie=h_numer-ulozenie; h_numer=h_numer-ulozenie; if(k==0){ num.push(1); var nag="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext\">"+nag+"</span>"; naglowek+="<ul><li><a href=\"#"+nag2+"\">"+nag+"</a>"; }else{ if(h_numer==liczba_ulozenia_w_menu_spisu_tresci){ num[num.length-1]+=1; var nag="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext\">"+nag+"</span>"; naglowek+="</li><li><a href=\"#"+nag2+"\">"+nag+"</a>"; }else{ if(h_numer>liczba_ulozenia_w_menu_spisu_tresci){ num.push(1); var nag="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext\">"+nag+"</span>"; naglowek+="<ul><li><a href=\"#"+nag2+"\">"+nag+"</a>"; liczba_ulozenia_w_menu_spisu_tresci=h_numer; }else{ if(h_numer<liczba_ulozenia_w_menu_spisu_tresci){ num.splice(num.length-liczba_ulozenia_w_menu_spisu_tresci+h_numer,liczba_ulozenia_w_menu_spisu_tresci-h_numer); num[num.length-1]+=1; var nag="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext\">"+nag+"</span>"; naglowek+=('</li></ul>'.repeat(liczba_ulozenia_w_menu_spisu_tresci-h_numer))+"</li><li><a href=\"#"+nag2+"\">"+nag+"</a>"; liczba_ulozenia_w_menu_spisu_tresci=h_numer; } } } } } if(naglowek!=""){ naglowek+=('</li></ul>'.repeat(liczba_ulozenia_w_menu_spisu_tresci)); for(var b=0;b<toc.length;++b){ var a2=toc[b].getElementsByTagName('a'); if((a2!=null)&&(a2.length>0)){ for(var y=0;y<a2.length;++y){ var parent=a2[y].parentNode; var href=a2[y].getAttribute('href'); href=href.replace(/^#/g,""); var title2=title.replace(/^[^\/]+\//g,""); if(href==title2.replace(/[_ ]+/g,"_")+((q>0)?("_"+(parseInt(q)+1)):"")){ var div=document.createElement('div'); div.innerHTML=naglowek; var links=a2[y].getElementsByClassName('toctext'); if((links!=null)&&(links.length>0)){ var link=links[0].innerHTML; if(link==title2){ parent.appendChild(div.getElementsByTagName('ul')[0]); } } } } } } } } } } } for(var d=0;d<tab_toc.length;++d){ var toc_pos=document.getElementsByClassName(tab_toc[d]); if((toc_pos!==null)&&(toc_pos.length>0)){ for(var w=0;w<toc_pos.length;++w){ var li=toc_pos[w].getElementsByTagName('li'); var poziom; var section=1; for(var z=0;z<li.length;++z){ var parent=li[z].parentNode.parentNode; if(parent!==null){ var klasa=parent.getAttribute('class'); if(klasa!==null){ var poziom=klasa.match(/toclevel-\d+/g); if(poziom!==null){ poziom=parseInt(poziom.toString().match(/\d+$/).toString())+1; }else{ poziom=1; } }else{poziom=1;} }else{poziom=1;} var klasa=li[z].getAttribute('class'); if(klasa!==null){ var czy_section=klasa.match(/tocsection-\d+/); if(czy_section!==null){ klasa=klasa.replace(/tocsection-\d+/g,"tocsection-"+section); li[z].setAttribute('class',klasa); }else{ li[z].classList.add("tocsection-"+section); } var czy_level=klasa.match(/toclevel-\d+/); if(czy_level!==null){ klasa=li[z].getAttribute('class'); klasa=klasa.replace(/toclevel-\d+/g,"toclevel-"+poziom); li[z].setAttribute('class',klasa); }else{ li[z].classList.add("toclevel-"+poziom); } }else{ li[z].setAttribute('class',"toclevel-"+poziom+" tocsection-"+section) } section=section+1; } } } } var headline=document.getElementsByClassName('mw-headline'); if((headline)&&(headline.length>0)){ for(var i=0;i<headline.length;++i){ var c=1; var el=headline[i]; var id0=el.innerHTML; id0=id0.replace(/[_\s]+/g,"_"); id0=id0.replace(/<[^<>]+>/g,""); for(var j=0;j<i;++j){ var el1=headline[j]; var id1=el1.innerHTML; id1=id1.replace(/[_\s]+/g,"_"); id1=id1.replace(/<[^<>]+>/g,""); if(id0==id1){ ++c; } } if(c==1){ el.setAttribute('id',id0); }else{ el.setAttribute('id',id0+"_"+c); } } } var tab_toc=new Array("toc","toc_spis"); for(d=0;d<tab_toc.length;++d){ var toc_pos=document.getElementsByClassName(tab_toc[d]); if((toc_pos!==null)&&(toc_pos.length>0)){ for(var w=0;w<toc_pos.length;++w){ var toc=toc_pos[w]; var a=toc.getElementsByTagName('a'); if((a)&&(a.length>0)){ for(var p=0;p<a.length;++p){ var strona=a[p].getElementsByClassName('toctext')[0].innerHTML.replace(/[_\s]+/g,"_"); strona=strona.replace(/<[^<>]+>/g,""); var c=1; for(var v=0;v<p;++v){ var strona2; strona2=a[v].getElementsByClassName('toctext')[0].innerHTML.replace(/[_\s]+/g,"_"); strona2=strona2.replace(/<[^<>]+>/g,""); if(strona==strona2){ ++c; } } strona=strona.replace(/<[^<>]+>/g,""); if(c==1){ a[p].setAttribute('href',"#"+strona); }else{ a[p].setAttribute('href',"#"+strona+"_"+c); } } } } } } } function StronaSubst(data){ var wikikod=data.parse.text['*']; var elem=document.createElement('div'); elem.innerHTML=wikikod; var klasa_mw_parser_out=elem.getElementsByClassName('mw-parser-output'); var wikikod_wyodrepniony=(((klasa_mw_parser_out)&&(klasa_mw_parser_out.length==1))?(klasa_mw_parser_out[0].innerHTML):wikikod); var czy_wikikod=wikikod_wyodrepniony.match(/^\s*$/g); if(czy_wikikod){return;} var strona_subst="strona_subst"; var tagclass=document.getElementsByClassName(strona_subst); if(tagclass==null){return null;} var liczba_elementow=tagclass.length; if(liczba_elementow==0){return null;} var titles=new Array(); var tabstrona=new Array(); var tabs=new Array(); for (var i=0;i<liczba_elementow;++i){ var element=tagclass[i]; if(element.tagName!="DIV"){return null;} var strona=element.innerHTML; var re = /^[_ ]*$/g; var dopasowanie = re.test(strona); if(dopasowanie){return null;}; strona=strona.replace(/^[_ ]*/g,""); strona=strona.replace(/[_ ]*$/g,""); strona=strona.replace(/[_ ]+/g," "); tabs[i]=strona; var czy=false; for(var d in titles){ if(titles[d]==strona){ czy=true; break; } } if(!czy){ titles[titles.length]=strona; } if(tabstrona[strona]==null){ tabstrona[strona]=new Array(); } var tab=tabstrona[strona]; var tablen=tab.length; tabstrona[strona][tablen]=element; } for ( var p in titles ) { var strona=titles[p]; var api=new mw.Api; api.get({ action: 'parse', format: 'json', prop: 'text', title: strona, text: '{{:'+strona+'}}', disabletoc: true, disablelimitreport: true, contentmodel: 'wikitext' }).done(function(data){ WikikodTitle(data,tabs,titles,tabstrona); }); } } var strona = mw.config.get('wgPageName'); var api=new mw.Api; api.get({ action: 'parse', format: 'json', prop: 'text', title: strona, text: '{{#invoke:StronicowyParser|CzyStronaSubst}}', disabletoc: true, disablelimitreport: true, contentmodel: 'wikitext' }).done(function(data){ StronaSubst(data) }); } $(WyswietlStronyKsiazki); </syntaxhighlight> Ten program {{Code|.js}} znajduje się na stronie: {{LinkUżytkownik2|Persino/common.js}}. Jak wstawisz ten kod do strony {{LinkKomunikat2|Common.js}}, to powinno wtedy zadziałać ładowanie modułów książki, za pomocą JavaScript, na stronie {{LinkUżytkownik2|Persino/Wersja do druku}}. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 09:09, 13 lis 2021 (CET) == Gadżet StronaSubst - dodawanie do listy gadżetów == Mamy sobie kod JavaScript {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} i opis gadżetu {{LinkUżytkownik2|Persino/Gadget-StronaSubst}}, czy mógłbyś przenieść na strony w przestrzeni nazw {{Np|MediaWiki|link=tak}}, i wywołaniu gadżetu w takiej formie jak w {{LinkUżytkownik2|Persino/Gadgets-definition}} przenieść na stronę {{LinkKomunikat2|Gadgets-definition}}. Wtedy strona {{LinkUżytkownik2|Persino/Wersja do druku}} powinna działać! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 14:14, 27 lis 2021 (CET) === Zamienianie kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}} === {{Ping|Wargo}}Chodzi tutaj, że jak będzie link do artykułu w nagłówku, to, żeby nie pojawiało się pole '''[ artykuł | edytuj ]''' zamiast '''[ edytuj ]''' - aktualnie w {{LinkKomunikat2|Gadget-StronaSubst.js}} pole '''[ artykuł | edytuj ]''' pojawia się zawsze zamiast '''[ edytuj ]''', wtedy gdy ma zawartość '''strona_subst''' jest nie pusta, to algorytm jest zakańczany. A jak jest nazwa strony w zawartości div-a '''strona_subst''', a nie link w nagłówku, to wtedy ma się prawo pojawić '''[ artykuł | edytuj ]''' zamiast '''[ edytuj ]'''. Czy mógłbyś wersję {{LinkKomunikat2|Gadget-StronaSubst.js}} zamienić na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}. Z góry dziękuję za rozpatrzenie mojej prośby! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 10:13, 30 lis 2021 (CET) ---- {{Ping|Wargo}} Jeszcze, czy mógłbyś zamienić tekst w {{LinkKomunikat2|Gadget-StronaSubst}} z: {{Pre|(bez sekcji "Spis treści" i "Licencja")}} na {{Pre|(bez sekcji "Spis treści", "Bibliografia" i "Licencja")}} [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 19:18, 1 gru 2021 (CET) === Ostatnia poprawka kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}=== {{Ping|Wargo}}Chodzi tutaj, że algorytm zawiesza się na artykule {{LinkGłówna|Mechanika kwantowa/Mechanika kwantowa}}, to co poprawiłem już tak przestaje być, błąd znikł! Czy mógłbyś dokonać zamianę kodu? Proszę o pilną reakcję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 18:30, 3 gru 2021 (CET) === Miejmy nadzieję, że to jest ostatnia poprawka kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}=== {{Ping|Wargo}}Chodzi tutaj, że algorytm ma błędy JavaScript na stronie, przy danej książce: {{LinkGłówna|Szachy}}, czyli przy artykule: {{LinkGłówna|Szachy/Szachy}} - błąd tylko widać, gdy chcemy zbadać element, moja poprawka usuwa ten błąd! Czy mógłbyś dokonać zamianę kodu? Proszę o pilną reakcję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 15:50, 4 gru 2021 (CET) === Następna poprawka kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}} === {{Ping|Wargo}}Chodzi tutaj, że algorytm nie wyświetla w TOC (wbudowany spis treści) podrozdziałów dla artykułu {{LinkGłówna|Matematyka dla liceum/Matematyka dla liceum}}, moja poprawka usuwa ten błąd. Skrypt porządkuje artykuły według nagłówków na stronie tego artykułu w TOC, a zestaw artykułów, w danek sekcji, wyświetla, również w TOC, je przydzielone do niej. Czy mógłbyś dokonać zamianę kodu? Proszę o pilną reakcję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 14:51, 7 gru 2021 (CET) === Poważne poprawki w {{LinkKomunikat2|Gadget-StronaSubst.js}} na podstawie {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} oraz dodanie i zmiana pewnych gadżetów === {{Ping|Wargo}} Następne poprawki dotyczące wpisu w {{LinkKomunikat2|Gadget-StronaSubst.js}}, co do zauważonych drobnych błędów, czyli mógłbyś dokonać zamiany kodu {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}. Z góry dziękuję. Poza tym wszystko działa, od razu dziękuję! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 19:32, 8 gru 2021 (CET) ---- {{Ping|Wargo}} Jeszcze, czy mógłbyś zamienić tekst w {{LinkKomunikat2|Gadget-StronaSubst}} z: {{Pre|(bez sekcji "Spis treści", "Bibliografia" i "Licencja")}} na {{Pre|(bez sekcji: "Spis treści", "Bibliografia", "Zobacz też", "Inne", "Licencja" i tym podobne)}} Dziękuję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 05:43, 9 gru 2021 (CET) ---- {{Ping|Wargo}} Czy mógłbyś uzupełnić {{LinkKomunikat2|Gadgets-definition}}, według {{LinkUżytkownik2|Persino/Gadgets-definition}} - szczególnie trzeba naprawić odwołanie do gadżetu StronaSubst, i dodać gadżety: {{LinkUżytkownik2|Persino/Gadget-gConfig.js}} (jego opis jest w {{LinkUżytkownik2|Persino/Gadget-gConfig}}), przenosząc go do {{LinkKomunikat2|Gadget-gConfig.js}} (jego opis do {{LinkKomunikat2|Gadget-gConfig}}), a także drugi gadżet dotyczący szablonu {{s|Cytuj}} przenieś z {{LinkUżytkownik2|Persino/Gadget-citation-access-info.js}} (jego opis to {{LinkUżytkownik2|Persino/Gadget-citation-access-info}}) do {{LinkKomunikat2|Gadget-citation-access-info.js}} (a jego opis do {{LinkKomunikat2|Gadget-citation-access-info}}). Gadżet '''gConfig''' potrzebny mi jest do gadżetu {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}}, którego zawartość należy przenieść do {{LinkKomunikat2|Gadget-StronaSubst.js}}, a gadżet {{LinkUżytkownik2|Persino/Gadget-citation-access-info.js}}, potrzebny mi jest do szablonu {{s|Cytuj}} do dymku do pełnej wersji tego szablonu, który należy przenieść do {{LinkKomunikat2|Gadget-citation-access-info.js}}. Proszę o pilną reakcję! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 15:04, 11 gru 2021 (CET) ---- Również proszę o zastąpienie strony komunikatu {{LinkKomunikat2|Gadget-map-toggler.js}} stroną {{LinkUżytkownik2|Persino/Gadget-map-toggler.js}}. Z góry dziękuję! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 18:38, 11 gru 2021 (CET) == Zamiana wartości linkowej i szablonowej == {{Ping|Wargo}}Czy mógłbyś zamienić na stronie: {{LinkUżytkownik2|Rychozol/common.js}}, z wartości: {{Nowiki|[[GNU Free Documentation License|GFDL]]}}, na: {{Nowiki|[[Wikibooks:GNU Free Documentation License|GFDL]]}}, a także na tej samej stronie wartość: {{s|clear}}, na {{s|BrClear}}, ponieważ ze względu na zmianę nazw stron. Z góry dziękuję! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 09:35, 13 gru 2021 (CET) <del>== Dalsze zmiany na stronach gadżetów (pilne) == {{Ping|Wargo}}Czy mógłbyś zainstalować gadżet "Gadget-gConfig", tak jak na stronie {{LinkUżytkownik2|Persino/Gadgets-definition}} (pierwsza linijka) w {{LinkKomunikat2|Gadgets-definition}}, a co do tego, jego kod {{LinkUżytkownik2|Persino/Gadget-gConfig.js}} zainstalować w miejscu {{LinkKomunikat2|Gadget-gConfig.js}} (jego opis jest w {{LinkUżytkownik2|Persino/Gadget-gConfig}}), przenosząc go do {{LinkKomunikat2|Gadget-gConfig.js}} (jego opis do {{LinkKomunikat2|Gadget-gConfig}}). A później zaaktualizuj gadżet {{LinkKomunikat2|Gadget-StronaSubst.js}} na {{LinkUżytkownik2|Persino/Gadget-StronaSubst.js}} w {{LinkKomunikat2|Gadget-StronaSubst.js}}, a także zainstalować w miejscu {{LinkKomunikat2|Gadget-Funkcje.js}} gadżet {{LinkUżytkownik2|Persino/Gadget-Funkcje.js}}, a również zaktualizować wpis dla gadżetu StronaSubst tak jak w {{LinkUżytkownik2|Persino/Gadgets-definition}}. A później sprawdzić, czy wszystko działa. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 13:19, 4 lut 2022 (CET)</del> == Przepełnienie scrollbarów, poszczególnych elementów strony, a ustawienia różnych klas, jeżeli takowe istnieją == {{Ping|Wargo}}Czy mógłbyś uwzględnić na stronie {{LinkKomunikat2|Common.js}} część mojej strony, która jest po sekwencji /**/, będąca na stronie {{LinkUżytkownik2|Persino/common.js}}. Ten skrypt sprawdza, czy nastąpiło przepełnienie elementów strony dokumentu HTML Wikibooks, a jeżeli nastąpiło, to następuje ustawienie tam odpowiednich klas, a jeżeli ono znikło, to usunięcie tych klas. Ten skrypt jest mi potrzebny do szablonu {{s|StronaStart}} i jego pokrewnych oraz do mojego ustawienia skórki vector-2022, która jest w mojej przestrzeni użytkownika. Dziękuję za spełnienie mojej prośby. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 19:23, 27 maj 2022 (CEST) == Aktualizacja przepełnienia scrollbarów i implementacja sticky == {{Ping|Wargo}} Czy mógłbyś uwzględnić na stronie {{LinkKomunikat2|Common.js}} część mojej strony, która jest po sekwencji /**/, będąca na stronie {{LinkUżytkownik2|Persino/common.js}}. W przypadku pierwszego algorytmu, dodałem tam klasy {{Code|mw-overflow-x}} i {{Code|mw-overflow-y}}, które ten algorytm rozpoznaje, i dla nich liczy, czy nastąpiło to właśnie przepełnienie. A wcześniej liczyło dla wszystkich znaczników na stronie, co spowalniało całą stronę. Tam, gdzie, ważne jest liczenie przepełnienie wstawiłem {{Code|mw-overflow-x}}, czy {{Code|mw-overflow-y}}, czyli algorytm ten tam powinien działać, co można sprawdzić na stronie głównej tego projektu ({{NAZWASERWISU|link=tak}}). Drugi algorytm jest rozszerzenie właściwości {{Code|position:sticky}}, który on nie działa, gdy choćby jeden z rodziców jest z nie {{Code|overflow:visible}}, ale z {{Code|overflow}}, a ja zrobiłem, że jednak zaczeło działać, a ja tak to zrobiłem: {{Code|position:sticky}} zastąpiłem {{Code|position:absolute}}, w tym znaczników ustawiam {{Code|mw-sticky-y}} (przesuw w pionie) lub {{Code|mw-sticky-x}} (przesuw w poziomie), wtedy ten algorytm JavaScript działa tak, że pudełko przesuwa się od pewnej granicy do pewnej, ale nigdy nie wychodzi poza te granice, czyli działa podobnie jak {{Code|position:sticky}}. Dziękuję za spełnienie mojej prośby. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 12:41, 9 lip 2022 (CEST) ==Aktualizacja skryptów na {{LinkKomunikat2|common.js}} z {{LinkUżytkownik2|Persino/common.js}}== {{Ping|Wargo}} Czy mógłbyś zaktualizować kod na stronie {{LinkKomunikat2|common.js}} ze strony {{LinkUżytkownik2|Persino/common.js}} pod znakiem {{Code|/**/}}. Zdefiniowałem przestrzeń nazw {{Code|Common}} definicją: {{Pre|var Common{{=}}new Array();}} Prawie wszystkie funkcje ze strony {{LinkKomunikat2|common.js}} przeniosłem do tej przestrzeni na stronie {{LinkUżytkownik2|Persino/common.js}} (tutaj wszystkie funkcje są w przestrzeni {{Code|Common}}). Rozwinąłem funkcję {{Code|Common.ScrollBarOverflow}}, {{Code|Common.StickyXY}} i {{Code|Common.OptimalXY}}. Napisałem od nowa funkcje: {{Code|Common.RamkiTableIDiv}} i {{Code|Common.ZdarzeniaDodatkoweFunkcyjneXY}} oraz funkcję do obsługi szablonu {{s|StronaStart}} i jego pokrewnych książkowych z definiowałem w postaci: {{Code|Common.StronaStart}}. Co oznaczają te funkcje: * {{Code|Common.ScrollBarOverflow}} - do generowania pewnych klas, które służą do obsługi pudełka z paskami przewijania, * {{Code|Common.StickyXY}} - aktualizacja funkcji {{Code|position:sticky}}, tam gdzie go nie można go użyć, do używamy tej funkcji, * {{Code|Common.OptimalXY}} - do obsługi boksów na stronach z użytymi szablonami stronicowymi książkowymi otwierającymi i zamykającymi, * {{Code|Common.RamkiTableIDiv}} - dodaje dalsze funkcje przy przyciskach tabel i ramek, nawigacyjnych, * {{Code|Common.ZdarzeniaDodatkoweFunkcyjneXY}} - dodaje zdarzenia do obsługi funkcji: {{Code|Common.StickyXY}} i {{Code|Common.OptimalXY}}, * {{Code|Common.StronaStart}} - służy do obsługi spisu treści i boksów szablonu {{s|StronaStart}}. Na stronach podręcznikowych boksy i spisy treści są responsywne według moich ustawień, a dla wszystkich użytkowników będą responsywne po zaktualizowaniu strony {{LinkKomunikat2|common.js}} przy pomocy {{LinkUżytkownik2|Persino/common.js}}. ---- Proszę o pilną reakcję i zrealizowanie mojej prośby. Z góry dziękuję. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 15:55, 3 sie 2022 (CEST) :Czy coś jest do usunięcia z obecnego common.js? Tj. czy coś stamtąd mam tym zastąpić? [[Wikipedysta:Wargo|Wargo]] ([[Dyskusja wikipedysty:Wargo|dyskusja]]) 20:55, 7 sie 2022 (CEST) ::{{Ping|Wargo}}Właśnie masz zastąpić nową wersją z pod /**/ z: {{LinkUżytkownik2|Persino/common.js}}, zastępując całą zawartość strony w: {{LinkKomunikat2|common.js}}. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 21:04, 7 sie 2022 (CEST) :::{{Ping|Wargo}} Już możesz zastępować, wszystko gotowe! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 21:39, 7 sie 2022 (CEST) ===Ostatnia poprawka=== {{Ping|Wargo}}Czy mógłbyś linijkę kodu: {{Pre|var top_ab{{=}}rect_rodzic[top]-margintop; var bottom_ab{{=}}(wys-rect_rodzic[bottom])-marginbottom; }} poprawić na: {{Pre|var top_ab{{=}}rect_rodzic[top]; var bottom_ab{{=}}(wys-rect_rodzic[bottom]); }} w funkcji: {{Code|Common.StickyXY}}, w {{LinkKomunikat2|common.js}} według {{LinkUżytkownik2|Persino/common.js}}. Tj. to linijka: 481-482. Z góry dziękuję za spełnienie mojej prośby. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 09:51, 8 sie 2022 (CEST) === Miejmy nadzieję, że ostatnia poprawka na stronie {{LinkKomunikat2|common.js}} === {{Ping|Wargo}}Czy mógłbyś w kodzie w linii: 177 i 183, na stronie {{LinkKomunikat2|common.js}} według {{LinkUżytkownik2|Persino/common.js}} poprawić według schematu: {{Pre |collapseTable( i ); }} zamienić na: {{Pre |Common.collapseTable( i ); }} Poprawka jest ważna, bo tabele nawigacyjne, na stronie głównej i gdzieś indziej, nie chcą się kolapsować, a po tej operacji już będą się tak zachowywać! ---- W linii: 176 poprawić: {{Pre |1=if ( $(NavigationBoxes[i]).hasClass( "collapsed" ) {{!}}{{!}} ( tableIndex >= Common.autoCollapse && $(NavigationBoxes[i]).hasClass( "Common.autoCollapse" ) ) ) { }} na kod: {{Pre |1=if ( $(NavigationBoxes[i]).hasClass( "collapsed" ) {{!}}{{!}} ( tableIndex >= Common.autoCollapse && $(NavigationBoxes[i]).hasClass( "autocollapse" ) ) ) { }} ---- Z góry dziękuję za spełnienie mojej prośby. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 13:34, 8 sie 2022 (CEST) nnsiu56crjwwy4t4td78jdzzbsyvcan Moduł:StronicowyParser 828 34347 437149 436035 2022-08-07T16:20:38Z Persino 2851 Scribunto text/plain local p = {} function p.SpreparowanyWikikodStrony(nazwa_modolu,dokumentacja) local stronicowyparser_dalszefunkcje=require("Module:StronicowyParser/DalszeFunkcje") return stronicowyparser_dalszefunkcje.SpreparowanyWikikodStrony(nil,nazwa_modolu,dokumentacja); end; function p.PrzekierowanieDoStrony(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local nazwa_modulu=PobierzParametr(1); local latki_modul=require("Module:Łatki"); return latki_modul.contentMatch{args={ [1]="^%s*#REDIRECT%s+%[%[(.+)%]%]%s*", [2]="^%s*#PATRZ%s+%[%[(.+)%]%]%s*", [3]="^%s*#TAM%s+%[%[(.+)%]%]%s*", namespace="", pagename=nazwa_modulu, }, }; end; p["TekstRozdziałuStrony"]=function(frame) local stronicowyparser_rozdzialy=require("Module:StronicowyParser/Rozdziały"); return stronicowyparser_rozdzialy.TekstRozdzialuStrony(frame); end; p["KtóraSekcjaStrony"]=function(frame) local stronicowyparser_rozdzialy=require("Module:StronicowyParser/Rozdziały"); return stronicowyparser_rozdzialy.KtoraSekcjaStrony(frame); end; p["ZwróćSekcjęNagłówkaStrony"]=function(frame) local stronicowyparser_rozdzialy=require("Module:StronicowyParser/Rozdziały"); return stronicowyparser_rozdzialy.ZwrocSekcjeNaglowkaStrony(frame); end; p["NastępnyArtykuł"]=function(frame) local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame); stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame); local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame); if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end; local args=stronicowyparser_potrzebne_modul:Args(frame); local parametry_modul=require("Module:Parametry"); local nazwa=parametry_modul.CzyTak(args["nazwa"]); local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame); local numer=tonumber(args[1]) or 0; local naglowek=parametry_modul.CzyTak(args["nagłówek"]); local nazwa_artykulu_z_naglowkiem_match=mw.ustring.match(nazwa_artykulu,"^([^#]*)#.*$"); local nazwa_artykulu_z_opcja_naglowek=(not naglowek) and nazwa_artykulu_z_naglowkiem_match or nazwa_artykulu; local nadstrona_artykulu=(numer>0) and stronicowyparser_potrzebne_modul.NazwaNadStrony(nazwa_artykulu,numer) or nil; local i=0; local tab_artykul={}; for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do if(tab_lista[2])then for _,artykul_w_bazie_element in ipairs(tab_lista[2])do local artykul_w_bazie;local artykul_bez_naglowka_w_bazie;local artykul_z_naglowkiem_w_bazie; local czy_table=parametry_modul.TypeTable(artykul_w_bazie_element[1]); if(czy_table)then artykul_w_bazie=artykul_w_bazie_element[1][1]; else artykul_w_bazie=artykul_w_bazie_element[1]; end; local artykul_z_naglowkiem_w_bazie_match=mw.ustring.match(artykul_w_bazie,"^([^#]*)#.*$"); artykul_bez_naglowka_w_bazie=artykul_z_naglowkiem_w_bazie_match or artykul_w_bazie; if(naglowek or not tab_artykul[artykul_bez_naglowka_w_bazie])then if(not naglowek)then tab_artykul[artykul_bez_naglowka_w_bazie]=true; end if(not naglowek)then artykul_z_naglowkiem_w_bazie=artykul_bez_naglowka_w_bazie; else artykul_z_naglowkiem_w_bazie=artykul_w_bazie; end; local numer_artykulu_w_bazie; if(numer>0)then numer_artykulu_w_bazie=stronicowyparser_potrzebne_modul.PoziomAdresu(artykul_bez_naglowka_w_bazie); end; local function Nastepny() if(not nazwa)then return artykul_z_naglowkiem_w_bazie; end; if(czy_table)then return artykul_w_bazie[1][2]; else return artykul_z_naglowkiem_w_bazie; end; end; if(i==1)then if(numer>0)then local nadstrona_artykulu_w_bazie=stronicowyparser_potrzebne_modul.NazwaNadStrony(artykul_bez_naglowka,numer); if((numer==numer_artykulu_w_bazie)and(nadstrona_artykulu==nadstrona_artykulu_w_bazie))then return Nastepny(); end; else return Nastepny(); end; else if((not naglowek)and(artykul_bez_naglowka_w_bazie==nazwa_artykulu_z_opcja_naglowek) or(((naglowek) and ((nazwa_artykulu_z_naglowkiem_match and artykul_z_naglowkiem_w_bazie_match)or(not nazwa_artykulu_z_naglowkiem_match and not artykul_z_naglowkiem_w_bazie_match))) and (artykul_z_naglowkiem_w_bazie==nazwa_artykulu) ))then i=1; end; end; end; end; end; end; if(i==1)then return ""; end; return "(błąd)"; end; p["PoprzedniArtykuł"]=function(frame) local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame); stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame); local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame); if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end; local args=stronicowyparser_potrzebne_modul:Args(frame); local parametry_modul=require("Module:Parametry"); local nazwa=parametry_modul.CzyTak(args["nazwa"]); local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame); local numer=tonumber(args[1]) or 0; local naglowek=parametry_modul.CzyTak(args["nagłówek"]); local nazwa_artykulu_z_naglowkiem_match=mw.ustring.match(nazwa_artykulu,"^([^#]*)#.*$") local nazwa_artykulu_z_opcja_naglowek=(not naglowek) and nazwa_artykulu_z_naglowkiem_match or nazwa_artykulu; local nadstrona_artykulu=(numer>0) and stronicowyparser_potrzebne_modul.NazwaNadStrony(nazwa_artykulu,numer) or nil; local artykul; local tab_artykul={}; for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do if(tab_lista[2])then for _,artykul_w_bazie in ipairs(tab_lista[2])do local artykul_z_naglowkiem_w_bazie;local artykul_bez_naglowka_w_bazie; local czy_table=parametry_modul.TypeTable(artykul_w_bazie[1]); if(czy_table)then artykul_z_naglowkiem_w_bazie=artykul_w_bazie[1][1]; else artykul_z_naglowkiem_w_bazie=artykul_w_bazie[1]; end; local artykul_z_naglowkiem_w_bazie_match=mw.ustring.match(artykul_z_naglowkiem_w_bazie,"^([^#]*)#.*$") artykul_bez_naglowka_w_bazie=artykul_z_naglowkiem_w_bazie_match or artykul_z_naglowkiem_w_bazie; if(naglowek or not tab_artykul[artykul_bez_naglowka_w_bazie])then if(not naglowek)then tab_artykul[artykul_bez_naglowka_w_bazie]=true; end; if((not naglowek)and(artykul_bez_naglowka_w_bazie==nazwa_artykulu_z_opcja_naglowek) or(((naglowek) and ((nazwa_artykulu_z_naglowkiem_match and artykul_z_naglowkiem_w_bazie_match)or(not nazwa_artykulu_z_naglowkiem_match and not artykul_z_naglowkiem_w_bazie_match)))and(artykul_z_naglowkiem_w_bazie==nazwa_artykulu)))then if(not artykul)then return "";end; local czy_table_artykul=parametry_modul.TypeTable(artykul); if(czy_table_artykul)then if(not nazwa)then if(naglowek)then return artykul[1]; end; artykul,_=mw.ustring.gsub(artykul[1],"^([^#]+)#(.*)$","%1"); return artykul; else return artykul[2]; end; else if(naglowek)then return artykul; end; artykul,_=mw.ustring.gsub(artykul,"^([^#]+)#(.*)$","%1"); return artykul; end; end if(numer>0)then local numer_artykulu_poprzedni=stronicowyparser_potrzebne_modul.PoziomAdresu(artykul_bez_naglowka_w_bazie); local nadstrona_artykulu_w_bazie=stronicowyparser_potrzebne_modul.NazwaNadStrony(artykul_bez_naglowka_w_bazie,numer); if((numer==numer_artykulu_poprzedni)and(nadstrona_artykulu==nadstrona_artykulu_w_bazie))then artykul=artykul_w_bazie[1]; end; else artykul=artykul_w_bazie[1]; end; end; end; end; end; return "(błąd)"; end; p["PoziomNazwyArtykułu"]=function(frame) local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame); stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame); local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame); if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end; local args=stronicowyparser_potrzebne_modul:Args(frame); local parametry_modul=require("Module:Parametry"); local nazwa=parametry_modul.CzyTak(args["nazwa"]); local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame); return stronicowyparser_potrzebne_modul.PoziomAdresu(nazwa_artykulu); end; p["PierwszyArtykuł"]=function(frame) local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame); stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame); local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame); if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end; local args=stronicowyparser_potrzebne_modul:Args(frame); local parametry_modul=require("Module:Parametry"); local nazwa=parametry_modul.CzyTak(args["nazwa"]); local naglowek=parametry_modul.CzyTak(args["nagłówek"]); for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do if(tab_lista[2])then for _,artykul_w_bazie in ipairs(tab_lista[2])do if(not nazwa)then local artykul=parametry_modul.TypeTable(artykul_w_bazie[1]) and artykul_w_bazie[1][1] or artykul_w_bazie[1]; return (not naglowek) and mw.ustring.gsub(artykul,"^([^#]*)#(.*)$","%1") or artykul; else return parametry_modul.TypeTable(artykul_w_bazie[1]) and artykul_w_bazie[1][2] or ((not naglowek) and mw.ustring.gsub(artykul_w_bazie[1],"^([^#]*)#(.*)$","%1") or artykul_w_bazie[1]); end; end; end; end; end; p["OstatniArtykuł"]=function(frame) local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame); stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame); local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame); if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end; local args=stronicowyparser_potrzebne_modul:Args(frame); local parametry_modul=require("Module:Parametry"); local nazwa=parametry_modul.CzyTak(args["nazwa"]); local naglowek=parametry_modul.CzyTak(args["nagłówek"]); local ostatni_artykul; for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do if(tab_lista[2])then for _,artykul_w_bazie in ipairs(tab_lista[2])do if(not nazwa)then ostatni_artykul=parametry_modul.TypeTable(artykul_w_bazie[1]) and artykul_w_bazie[1][1] or artykul_w_bazie[1]; else ostatni_artykul=parametry_modul.TypeTable(artykul_w_bazie[1]) and artykul_w_bazie[1][2] or artykul_w_bazie[1]; end; end; end; end; if(ostatni_artykul)then return (not naglowek) and mw.ustring.gsub(ostatni_artykul,"^([^#]*)#(.*)$","%1") or ostatni_artykul; end; return "(błąd)"; end; p["PomiędzyArtykuł"]=function(frame) local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); local val=stronicowyparser_potrzebne_modul:ObliczeniaInformacje(frame); if(not val)then return "(błąd)";end; local element=stronicowyparser_potrzebne_modul:PomiedzyArtykul(frame) or nil; if(not element)then return "(błąd)";end; local args=stronicowyparser_potrzebne_modul:Args(frame); local parametry_modul=require("Module:Parametry"); local nazwa=parametry_modul.CzyTak(args["nazwa"]); local czy_table=parametry_modul.TypeTable(element); local element=czy_table and element[1] or element; if(not nazwa)then return (not naglowek) and mw.ustring.gsub(element,"^([^#]*)#(.*)$","%1") or element;end; return czy_table and element[2] or ((not naglowek) and mw.ustring.gsub(element,"^([^#]*)#(.*)$","%1") or element); end; p["LosowyArtykuł"]=function(frame) local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); local val=stronicowyparser_potrzebne_modul:ObliczeniaInformacje(frame); if(not val)then return "(błąd)";end; local element=stronicowyparser_potrzebne_modul:LosowyArtykul(frame); if(not element)then return "(błąd)";end; local args=stronicowyparser_potrzebne_modul:Args(frame); local parametry_modul=require("Module:Parametry"); local nazwa=parametry_modul.CzyTak(args["nazwa"]); local czy_table=parametry_modul.TypeTable(element); local element=czy_table and element[1] or element; if(not nazwa)then return mw.ustring.gsub(element,"^([^#]*)#(.*)$","%1") or element;end; return czy_table and element[2] or mw.ustring.gsub(element,"^([^#]*)#(.*)$","%1") or element; end; local function PobiezNumerLubNazweNaglowka(frame,__FUNKCJA,typ) local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame); stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame); local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame); if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end; local args=stronicowyparser_potrzebne_modul:Args(frame); local parametry_modul=require("Module:Parametry"); local poziomowo=parametry_modul.CzyTak(args["poziomowo"]); local ktory=(tonumber(args["który"]) or 1); local parametr_pierwszy_szablonu=typ and ((not poziomowo) and (tonumber(args[1]) or 1) or args[1]) or args[1]; if(not typ)then parametr_pierwszy_szablonu,_=mw.ustring.gsub(parametr_pierwszy_szablonu,"^[%s_]+",""); parametr_pierwszy_szablonu,_=mw.ustring.gsub(parametr_pierwszy_szablonu,"[%s_]+$",""); parametr_pierwszy_szablonu,_=mw.ustring.gsub(parametr_pierwszy_szablonu,"[%s_]+"," "); end; local HNumer=stronicowyparser_potrzebne_modul.LiczonyHNumer(); local HNumer_2=nil; local tab_numer_2=nil; local tab_numer={}; local i=(not poziomowo) and 0 or nil; local i_2=nil; local juz_nie_rozwazaj_spisu_tresci=nil; local juz_nie_rozwazaj_rozdzialu_spisu_tresci=nil; local stronicowyparser_obiekty=mw.loadData("Module:StronicowyParser/obiekty"); local tab_rozdzialow_glownych_spisow_tresci_ksiazek=stronicowyparser_obiekty.tab_rozdzialow_glownych_spisow_tresci_ksiazek; local tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek=stronicowyparser_obiekty.tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek; local poziom_spisu_tresci=nil; local pierwszy_dodatni_spis_tresci=nil; for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do local rozdzial=tab_lista[1][1]; local poziom_rozdzialu=tab_lista[1][2][1]; if(poziom_rozdzialu>0)then local czy_nie_ten_rozdzial=nil; local czy_jest_teraz_spis_tresci=tab_rozdzialow_glownych_spisow_tresci_ksiazek[rozdzial];local czy_nie_ten_rozdzial; if((not juz_nie_rozwazaj_spisu_tresci)and(not juz_nie_rozwazaj_rozdzialu_spisu_tresci)and(czy_jest_teraz_spis_tresci))then poziom_spisu_tresci=poziom_rozdzialu; juz_nie_rozwazaj_rozdzialu_spisu_tresci=true; czy_nie_ten_rozdzial=tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek[rozdzial]; elseif((not juz_nie_rozwazaj_spisu_tresci)and(juz_nie_rozwazaj_rozdzialu_spisu_tresci))then if((poziom_spisu_tresci<poziom_rozdzialu))then czy_nie_ten_rozdzial=false; else juz_nie_rozwazaj_spisu_tresci=true; czy_nie_ten_rozdzial=tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek[rozdzial]; end; else local juz_nie_rozwazaj_spisu_tresci=nil; local juz_nie_rozwazaj_rozdzialu_spisu_tresci=nil; czy_nie_ten_rozdzial=tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek[rozdzial]; end; if(not czy_nie_ten_rozdzial)then if(poziomowo)then local hnumer=HNumer(poziom_rozdzialu); if(#tab_numer<hnumer)then for i=#tab_numer+1,hnumer,1 do table.insert(tab_numer,1); end; elseif(#tab_numer>hnumer)then for i=#tab_numer, hnumer+1,-1 do table.remove(tab_numer,i); end; tab_numer[#tab_numer]=tab_numer[#tab_numer]+1; else tab_numer[#tab_numer]=tab_numer[#tab_numer]+1; end; ---- local wartosc=__FUNKCJA(poziomowo,i,tab_numer,ktory,parametr_pierwszy_szablonu,rozdzial); ---- if(wartosc)then return wartosc;end; ---- if((czy_jest_teraz_spis_tresci)and(not pierwszy_dodatni_spis_tresci))then HNumer_2=HNumer; HNumer=stronicowyparser_potrzebne_modul.LiczonyHNumer(); tab_numer_2=tab_numer; tab_numer={}; pierwszy_dodatni_spis_tresci=true; elseif((pierwszy_dodatni_spis_tresci)and(poziom_spisu_tresci>=poziom_rozdzialu))then HNumer=HNumer_2; HNumer_2=nil; tab_numer=tab_numer_2; tab_numer_2=nil; pierwszy_dodatni_spis_tresci=false; end; else i=i+1; ---- local wartosc=__FUNKCJA(poziomowo,i,tab_numer,ktory,parametr_pierwszy_szablonu,rozdzial); --- if(wartosc)then return wartosc;end; --- if((czy_jest_teraz_spis_tresci)and(not pierwszy_dodatni_spis_tresci))then i_2=i; i=0; pierwszy_dodatni_spis_tresci=true; elseif((pierwszy_dodatni_spis_tresci)and(poziom_spisu_tresci>=poziom_rozdzialu))then i=i_2; i_2=nil; pierwszy_dodatni_spis_tresci=false; end; end; end; end; end; end; p["PobierzNumerNagłówka"]=function(frame) local s=1; local function __FUNKCJA(poziomowo,i,tab_numer,ktory,naglowek,rozdzial) if(naglowek==rozdzial)then if(s==ktory)then if(poziomowo)then if(#tab_numer==0)then return;end; return table.concat(tab_numer,"."); else return i; end; end; s=s+1; end; end; return PobiezNumerLubNazweNaglowka(frame,__FUNKCJA,false); end; p["PobierzNazwęNagłówka"]=function(frame) local s=1; local function __FUNKCJA(poziomowo,i,tab_numer,ktory,numer,rozdzial) if(poziomowo)then if(#tab_numer==0)then return;end; if(numer==table.concat(tab_numer,"."))then if(s==ktory)then return rozdzial; else s=s+1; end; end; elseif(numer==i)then if(s==ktory)then return rozdzial; else s=s+1; end; end end; return PobiezNumerLubNazweNaglowka(frame,__FUNKCJA,true); end; local function PobierzNumerLubNazweArtykulu(frame,__FUNKCJA,typ) local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame); stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame); local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame); if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end; local args=stronicowyparser_potrzebne_modul:Args(frame); local parametry_modul=require("Module:Parametry"); local naglowek=parametry_modul.CzyTak(args["nagłówek"]); local tab_artykul=(not naglowek)and {} or nil; local poziomowo=parametry_modul.CzyTak(args["poziomowo"]); local tab_poziomowo={}; local tab_poziomowo_1={}; local tab_poziomowo_2={}; local html_modul=require("Module:Html"); local pierwszy_parametr_szablonu=args[1] and (typ and ((not poziomowo) and (tonumber(args[1]) or 1) or args[1]) or ((not naglowek) and mw.ustring.gsub(html_modul["PoprawAdresNagłówkaStronyAdresu"](html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](args[1])),"^([^#]*)#(.*)$","%1") or html_modul["PoprawAdresNagłówkaStronyAdresu"](html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](args[1]))) ) or (typ and 1 or "Przykładowy artykuł"); local ktory=(tonumber(args["ktory"]) or 1); local i=(not poziomowo) and 1 or nil; local stronicowyparser_obiekty=mw.loadData("Module:StronicowyParser/obiekty"); local tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek=stronicowyparser_obiekty.tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek; local tab_rozdzialow_glownych_spisow_tresci_ksiazek=stronicowyparser_obiekty.tab_rozdzialow_glownych_spisow_tresci_ksiazek; --local HNumer=poziomowo and stronicowyparser_potrzebne_modul.LiczonyHNumer() or nil; local HNumerPoziomow_4=nil--poziomowo and stronicowyparser_potrzebne_modul.LiczonyHNumer() or nil; local HNumerPoziomow_3=nil local HNumerPoziomow_2=nil; local HNumerPoziomow_1=nil; local HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer(); local HNumerPoziomowNaglowkow=stronicowyparser_potrzebne_modul.LiczonyHNumer(); local HNumerPoziomowNaglowkow_1=nil; local HNumerPoziomowNaglowkow_2=nil; --local HNumerPoziomowInnychNaglowkow=stronicowyparser_potrzebne_modul.LiczonyHNumer(); local tab_numer=poziomowo and {} or nil; tab_numer_1=nil; tab_numer_3=nil tab_numer_4=nil;--poziomowo and {} or nil; local spis=false; local czy_poziom_spisu_tresci=nil; local pierwszy_dodatni_naglowek=nil; local pierwszy_ujemny_naglowek=nil; local juz_nie_rozwazaj_spisu_tresci=nil; local juz_nie_rozwazaj_rozdzialu_spisu_tresci=nil; local poprzedni_poziom_znakowy_rozdzialu=nil; local poprzedni_tab_poziomowo=nil; local poziom_pierwszego_dodatniego_naglowka=0; local poziom_pierwszego_ujemnego_naglowka=0; local poziom_zerowego_naglowka=0; local poziom_spisu_tresci_naglowka=0; local numer_poziomu=nil; local ostatni_rozdzial_dodatni=nil; local pierwszy_rozdzial_dodatni=nil; local glowny_dodatni_rozdzial=nil; local glowny_ujemny_rozdzial=nil; local spis_tresci=nil; local poziom_pierwszego_ujemnego_spisu_tresci=nil; local ostatni_poczatek_artykulu=nil; local pierwszy_rowny_rozdzial=nil; local artykuly_w_rozdziale=nil; local spis_tresci_zerowy; local poziom_zerowy; local rozdzial; if(poziomowo and tab_lista_artykulow_w_ksiazce[1])then rozdzial=tab_lista_artykulow_w_ksiazce[1][1][1]; rozdzial,_=mw.ustring.gsub(rozdzial,"'+",""); spis_tresci_zerowy=tab_rozdzialow_glownych_spisow_tresci_ksiazek[rozdzial]; poziom_zerowy=tab_lista_artykulow_w_ksiazce[1][1][2][1]; end; for m,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do local tab_poprzedni_artykul_w_bazie=nil; local poziom_rozdzialu; local poziom_poczatku_rozdzialu=nil; local poziom_znakowy_rozdzialu=nil; local poziom_naglowka=nil; if(poziomowo)then poziom_rozdzialu=tab_lista[1][2][1]; poziom_poczatku_rozdzialu=tab_lista[1][2][2]; if(m>1)then rozdzial=tab_lista[1][1]; rozdzial,_=mw.ustring.gsub(rozdzial,"'+",""); end; tab_poziomowo={}; local czy_jest_teraz_spis_tresci=((m>1)and(not spis_tresci_zerowy or not poziom_zerowy)or((m==1)and(spis_tresci_zerowy))) and ((m==1) and true or tab_rozdzialow_glownych_spisow_tresci_ksiazek[rozdzial]) local czy_nie_ten_rozdzial; if((not juz_nie_rozwazaj_spisu_tresci)and(not juz_nie_rozwazaj_rozdzialu_spisu_tresci)and(czy_jest_teraz_spis_tresci))then poziom_spisu_tresci=poziom_rozdzialu; juz_nie_rozwazaj_rozdzialu_spisu_tresci=true; czy_nie_ten_rozdzial=tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek[rozdzial]; elseif((not juz_nie_rozwazaj_spisu_tresci)and(juz_nie_rozwazaj_rozdzialu_spisu_tresci))then if((poziom_spisu_tresci<poziom_rozdzialu))then czy_nie_ten_rozdzial=false; else juz_nie_rozwazaj_spisu_tresci=true; czy_nie_ten_rozdzial=tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek[rozdzial]; end; else czy_nie_ten_rozdzial=tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek[rozdzial]; end; --if(not czy_nie_ten_rozdzial)then poprzedni_poziom_znakowy_rozdzialu=poziom_znakowy_rozdzialu; poziom_znakowy_rozdzialu=poziom_rozdzialu; poziom_rozdzialu=math.abs(poziom_rozdzialu); artykuly_w_rozdziale=nil; if(poziom_znakowy_rozdzialu>0)then poziom_naglowka=poziom_rozdzialu; poziom_pierwszego_ujemnego_spisu_tresci=nil; poprzedni_tab_poziomowo=nil; poziom_zerowego_naglowka=0; if(glowny_ujemny_rozdzial)then HNumerPoziomow=HNumerPoziomow_4; HNumerPoziomow_4=nil; tab_numer=tab_numer_4; poziom_pierwszego_ujemnego_naglowka=nil; glowny_ujemny_rozdzial=nil; end; if(pierwszy_ujemny_spis_tresci)then HNumerPoziomow=HNumerPoziomow_2; HNumerPoziomow_2=nil; tab_numer=tab_numer_2; tab_numer_2=nil; pierwszy_ujemny_spis_tresci=nil; czy_poziom_ujemny_spisu_tresci=nil; end; if(not glowny_dodatni_rozdzial)then if((juz_nie_rozwazaj_rozdzialu_spisu_tresci)and(not juz_nie_rozwazaj_spisu_tresci)and(not czy_jest_teraz_spis_tresci)and(not spis_tresci))then numer_rozdzialu=HNumerPoziomow(poziom_rozdzialu,1); spis_tresci=true; else if(not pierwszy_rozdzial_dodatni)then pierwszy_rozdzial_dodatni=1; numer_rozdzialu=HNumerPoziomow(poziom_rozdzialu,1); else numer_rozdzialu=HNumerPoziomow(poziom_rozdzialu); end; end; else numer_rozdzialu=HNumerPoziomow(poziom_rozdzialu,1); glowny_dodatni_rozdzial=false; end; ostatni_rozdzial_dodatni=poziom_rozdzialu; elseif(poziom_znakowy_rozdzialu<0)then if(not pierwszy_rowny_rozdzial)then if((ostatni_poczatek_artykulu) and(#ostatni_poczatek_artykulu==#poziom_poczatku_rozdzialu) and(ostatni_poczatek_artykulu~=poziom_poczatku_rozdzialu) and(mw.ustring.match(ostatni_poczatek_artykulu,"^*")) and(mw.ustring.match(poziom_poczatku_rozdzialu,"^:")) )then poziom_rozdzialu=poziom_rozdzialu+1; poziom_znakowy_rozdzialu=-poziom_rozdzialu; pierwszy_rowny_rozdzial=1; poziom_naglowka=poziom_rozdzialu+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka; else poziom_naglowka=poziom_rozdzialu+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka; end; else if((#ostatni_poczatek_artykulu==#poziom_poczatku_rozdzialu) and(ostatni_poczatek_artykulu==poziom_poczatku_rozdzialu) )then pierwszy_rowny_rozdzial=0;end; poziom_rozdzialu=poziom_rozdzialu+pierwszy_rowny_rozdzial; poziom_znakowy_rozdzialu=-poziom_rozdzialu; poziom_naglowka=poziom_rozdzialu+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka; end; if(not glowny_ujemny_rozdzial)then --if((juz_nie_rozwazaj_rozdzialu_spisu_tresci)and(not juz_nie_rozwazaj_spisu_tresci)and(not spis_tresci))then -- numer_rozdzialu=HNumerPoziomow(poziom_rozdzialu,1); -- spis_tresci=true; --else numer_rozdzialu=HNumerPoziomow(poziom_rozdzialu+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka); --end; else numer_rozdzialu=HNumerPoziomow(poziom_rozdzialu+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka,1); glowny_ujemny_rozdzial=false; end; else if((m>1)or((m==1)and(not czy_jest_teraz_spis_tresci)))then poziom_zerowego_naglowka=1; numer_rozdzialu=HNumerPoziomow( 1 + (ostatni_rozdzial_dodatni or 0) + 0); poziom_znakowy_rozdzialu=-1; poziom_rozdzialu=1; poziom_naglowka= 1 + (ostatni_rozdzial_dodatni or 0) + 0; else poziom_zerowego_naglowka=0; numer_rozdzialu=0; poziom_naglowka=(ostatni_rozdzial_dodatni or 0) + 0; end; end; local numer; if(poziom_znakowy_rozdzialu>0)then local numer=HNumerPoziomowNaglowkow(poziom_znakowy_rozdzialu); --HNumerPoziomowInnychNaglowkow=stronicowyparser_potrzebne_modul.LiczonyHNumer(); elseif(poziom_znakowy_rozdzialu<0)then --local numer=HNumerPoziomowInnychNaglowkow(-poziom_znakowy_rozdzialu); end; if((m>1) and(tab_lista_artykulow_w_ksiazce[m-1]) and(tab_lista_artykulow_w_ksiazce[m-1][2]) and(#tab_lista_artykulow_w_ksiazce[m-1][2][1]>0) and(tab_lista_artykulow_w_ksiazce[m-1][2][#tab_lista_artykulow_w_ksiazce[m-1][2]][2][1]==0) )then local lens_tab_numer=#tab_numer; local roznica=math.min(#poprzedni_tab_poziomowo+#tab_numer,numer_rozdzialu)-#tab_numer; roznica=((roznica>0) and roznica or 0); for i=1,roznica,1 do tab_numer[i+lens_tab_numer]=poprzedni_tab_poziomowo[i]; end; end; if((czy_jest_teraz_spis_tresci)and(juz_nie_rozwazaj_rozdzialu_spisu_tresci))then if(poziom_znakowy_rozdzialu>0)then poziom_spisu_tresci_naglowka=poziom_rozdzialu; else poziom_pierwszego_ujemnego_spisu_tresci=poziom_rozdzialu; end; end; if(poziom_rozdzialu>0)then if((((czy_poziom_dodatni_spisu_tresci)and(poziom_znakowy_rozdzialu>0))or((czy_poziom_ujemny_spisu_tresci)and(poziom_znakowy_rozdzialu<0))) and(poziom_spisu_tresci)and(poziom_spisu_tresci>=poziom_rozdzialu) )then if(poziom_znakowy_rozdzialu>0)then tab_numer=tab_numer_1; tab_poziomowo={}; poziom_spisu_tresci=nil; HNumerPoziomow=HNumerPoziomow_1; HNumerPoziomowNaglowkow=HNumerPoziomowNaglowkow_1; czy_poziom_dodatni_spisu_tresci=false; elseif(poziom_znakowy_rozdzialu<0)then tab_numer=tab_numer_2; tab_poziomowo={}; poziom_spisu_tresci=nil; HNumerPoziomow=HNumerPoziomow_2; --HNumerPoziomowNaglowkow=HNumerPoziomowNaglowkow_2; czy_poziom_ujemny_spisu_tresci=false; pierwszy_ujemny_spis_tresci=nil; end; end; local hnumer=numer_rozdzialu; if(poprzedni_tab_poziomowo)then local lens=math.min(#poprzedni_tab_poziomowo,hnumer-#tab_numer); local len_tab_numer=#tab_numer; for i=1,lens,1 do tab_numer[len_tab_numer+i]=poprzedni_tab_poziomowo[i]; end; for i=lens+1,#tab_numer do tab_numer[len_tab_numer+i]=nil; end; end; if(#tab_numer<hnumer)then for i=#tab_numer+1,hnumer,1 do table.insert(tab_numer,1); end; elseif(#tab_numer>hnumer)then for i=#tab_numer, hnumer+1,-1 do table.remove(tab_numer,i); end; tab_numer[#tab_numer]=(tab_numer[#tab_numer] or 0) + 1; else tab_numer[#tab_numer]=(tab_numer[#tab_numer] or 0) + 1; end; else --[[if(poziom_rozdzialu==0)then if(tab_lista_artykulow_w_ksiazce[m+1])then if(tab_lista_artykulow_w_ksiazce[m+1][1][2]>0)then tab_numer={0,}; elseif(tab_lista_artykulow_w_ksiazce[m+1][1][2]<0)then tab_numer={}; end; else tab_numer={}; end; end;]] end; --end; if((czy_jest_teraz_spis_tresci)and(((not pierwszy_dodatni_spis_tresci)and(poziom_znakowy_rozdzialu>0))or((not pierwszy_ujemny_spis_tresci)and(poziom_znakowy_rozdzialu<0))))then function Poziom_dodatni() for s,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do if(s>m)then if(tab_lista[1][2][1]>0)then if(math.abs(tab_lista[1][2][1])>poziom_rozdzialu)then return true; else return false; end; end; end; end; return true; end; local id=nil; if(tab_lista_artykulow_w_ksiazce[m][2])then for p,artykul_w_bazie in ipairs(tab_lista_artykulow_w_ksiazce[m][2])do id=tab_lista_artykulow_w_ksiazce[m][2][p][4]; if(id)then break; end; end; end; if((poziom_znakowy_rozdzialu>0)and((id)or(Poziom_dodatni())))then tab_poziomowo_1=tab_poziomowo; tab_poziomowo={}; czy_poziom_dodatni_spisu_tresci=true; HNumerPoziomow_1=HNumerPoziomow; HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer(); HNumerPoziomowNaglowkow_1=HNumerPoziomowNaglowkow; HNumerPoziomowNaglowkow=stronicowyparser_potrzebne_modul.LiczonyHNumer(); tab_numer_1=tab_numer; tab_numer={}; pierwszy_dodatni_spis_tresci=true; elseif((poziom_znakowy_rozdzialu<0) and((id)or((tab_lista_artykulow_w_ksiazce[m+1]) and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0) and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu))))then tab_poziomowo_2=tab_poziomowo; tab_poziomowo={}; czy_poziom_ujemny_spisu_tresci=true; HNumerPoziomow_2=HNumerPoziomow; HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer(); --HNumerPoziomowNaglowkow_2=HNumerPoziomowNaglowkow; --HNumerPoziomowNaglowkow=stronicowyparser_potrzebne_modul.LiczonyHNumer(); tab_numer_2=tab_numer; tab_numer={}; pierwszy_ujemny_spis_tresci=true; end; end; local function OTakimSamymLubMniejszymPoziomie(m) if(poziom_rozdzialu==0)then return true;end; local lens=parametry_modul["LiczbaElementówNumerowanychTablicy"](tab_lista_artykulow_w_ksiazce); if(m==lens)then return true;end; if(poziom_znakowy_rozdzialu>0)then for k=m+1,lens,1 do if(tab_lista_artykulow_w_ksiazce[k])then if(tab_lista_artykulow_w_ksiazce[k][1][2][1]>0)then if(math.abs(tab_lista_artykulow_w_ksiazce[k][1][2][1])<=poziom_rozdzialu)then return true; end; end; end; end; elseif(((m==1)or((tab_lista_artykulow_w_ksiazce[m-1])and(tab_lista_artykulow_w_ksiazce[m-1][1][2][1]>0)))and(poziom_znakowy_rozdzialu<0))then local poziom_zerowego_naglowka_innego=0; for k=m+1,lens,1 do if(tab_lista_artykulow_w_ksiazce[k])then if(tab_lista_artykulow_w_ksiazce[k][1][2][1]<=0)then local ile=tab_lista_artykulow_w_ksiazce[k][1][2][1]; if(ile==0)then if((czy_jest_teraz_spis_tresci)and(m==1))then poziom_zerowego_naglowka_innego=poziom_zerowego_naglowka; else poziom_zerowego_naglowka_innego=1; end; end; if(math.abs(tab_lista_artykulow_w_ksiazce[k][1][2][1])+poziom_zerowego_naglowka_innego<=poziom_rozdzialu)then return true; end; else break; end; end; end; else return true; end; end; -- if(not czy_nie_ten_rozdzial)then if((tab_lista[2]) and(tab_lista[2][1]) and(tab_lista[2][1][2][1]==0) and(not tab_lista[2][1][4]) and(tab_lista_artykulow_w_ksiazce[m+1]) and(((poziom_znakowy_rozdzialu>0) and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]>0) and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu) )or( ((poziom_znakowy_rozdzialu<0) and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0) and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])+poziom_zerowego_naglowka>poziom_rozdzialu) ) )or( (poziom_znakowy_rozdzialu==0)and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]~=0) )) )then if(m==1)then tab_numer={0,} else table.insert(tab_numer,0); end; elseif((m==1)and(not tab_lista_artykulow_w_ksiazce[m+1]))then tab_numer={}; elseif((poziomowo)and(m==1)and(poziom_zerowego_naglowka==0)and(poziom_znakowy_rozdzialu==0)and(tab_lista_artykulow_w_ksiazce[m+1])and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0))then tab_numer={}; elseif((poziomowo)and(m==1)and(poziom_zerowego_naglowka==0)and(poziom_znakowy_rozdzialu==0)and(tab_lista_artykulow_w_ksiazce[m+1])and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]>0))then tab_numer={0,} elseif((poziomowo)and(m==2)and(poziom_zerowego_naglowka==0)and(poziom_znakowy_rozdzialu<0)and(tab_lista_artykulow_w_ksiazce[m-1])and(tab_lista_artykulow_w_ksiazce[m-1][1][2][1]==0))then if(poprzedni_tab_poziomowo)then local min=math.min(math.abs(numer_rozdzialu),#poprzedni_tab_poziomowo); for i=#poprzedni_tab_poziomowo,min+1,-1 do table.remove(poprzedni_tab_poziomowo,i) end; tab_numer=poprzedni_tab_poziomowo; tab_numer[#tab_numer]=(tab_numer[#tab_numer] or 0)+1; end; elseif((not czy_jest_teraz_spis_tresci)and(((not pierwszy_dodatni_naglowek)and(poziom_znakowy_rozdzialu>0))or((not pierwszy_ujemny_naglowek)and(poziom_znakowy_rozdzialu<0))))then if(poziom_rozdzialu>0)then if(not OTakimSamymLubMniejszymPoziomie(m))then if(poziom_znakowy_rozdzialu>0)then HNumerPoziomowNaglowkow_2=HNumerPoziomowNaglowkow; HNumerPoziomowNaglowkow=stronicowyparser_potrzebne_modul.LiczonyHNumer(); tab_numer_3=tab_numer; tab_numer={0,}; HNumerPoziomow_3=HNumerPoziomow; HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer(); pierwszy_dodatni_naglowek=true; poziom_pierwszego_dodatniego_naglowka=poziom_rozdzialu; glowny_dodatni_rozdzial=true; else tab_numer_4=tab_numer; tab_numer=parametry_modul["KopiujTabelęElementów"](tab_numer); tab_numer[#tab_numer]=nil; HNumerPoziomow_4=HNumerPoziomow; HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer(); if(poziom_naglowka or 0>0)then HNumerPoziomow(poziom_naglowka,#tab_numer); end; pierwszy_ujemny_naglowek=true; poziom_pierwszego_ujemnego_naglowka=poziom_rozdzialu; glowny_ujemny_rozdzial=true; end; else if(poziom_znakowy_rozdzialu>0)then pierwszy_dodatni_naglowek=true;else pierwszy_ujemny_naglowek=true;end; end; end; elseif((czy_jest_teraz_spis_tresci)and(not czy_nie_ten_rozdzial))then if((not spis)and(poziom_rozdzialu>0) and(tab_lista_artykulow_w_ksiazce[m+1]) and(( (poziom_znakowy_rozdzialu>0) and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]>0) and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu) )or( (poziom_znakowy_rozdzialu<0) and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0) and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu) )) )then tab_numer={0,}; spis=true; end elseif((tab_lista_artykulow_w_ksiazce[m+1]) and(( (poziom_znakowy_rozdzialu>0) and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]>0) and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu) )--[[or( (poziom_znakowy_rozdzialu<0) and(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]<0) and(math.abs(tab_lista_artykulow_w_ksiazce[m+1][1][2][1])>poziom_rozdzialu) )]]) )then table.insert(tab_numer,0); end; -- end; end; if(tab_lista[2])then local HNumerArtykulu=stronicowyparser_potrzebne_modul.LiczonyHNumer(); local HNumerPoziomu=stronicowyparser_potrzebne_modul.LiczonyHNumer(); local czy_tytul_rozdzial=nil;local poprzedni_b=nil;local ile_odjac=0; local HNumerB=nil; local poprzedni_poziom_artykulu=nil; local czy_ma_elementy=nil; local poziom_poprzedni_artykulu=nil; for p,artykul_w_bazie in ipairs(tab_lista[2])do local artykul=artykul_w_bazie[1][1] or artykul_w_bazie[1]; artykul=(not naglowek)and mw.ustring.gsub(artykul,"^([^#]*)#(.*)$","%1") or artykul; if(naglowek or not tab_artykul[artykul])then pierwszy_rowny_rozdzial=nil; czy_ma_elementy=true; if(not naglowek)then tab_artykul[artykul]=true; end; local tab_artykul_w_bazie; if(poziomowo)then local poziom_artykulu=artykul_w_bazie[2][1]; local poziom_poczatku_artykulu=artykul_w_bazie[2][2]; local w_rozdziale=artykul_w_bazie[2][4]; if(w_rozdziale)then if((w_rozdziale)and(not tab_lista[2][p+1]))then local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,artykul,tab_numer,{}); if(wartosc)then return wartosc;end; end; function Dalej() for s,artykul_w_bazie in ipairs(tab_lista[2])do if(s>p)then if((tab_lista[2][s])and(not tab_lista[2][s][2][4]))then return true; end; end; end; return false; end; if(Dalej())then tab_numer[#tab_numer+1]=0; artykuly_w_rozdziale=true; end; elseif(artykuly_w_rozdziale)then artykuly_w_rozdziale=nil; table.remove(tab_numer,#tab_numer); tab_poziomowo={}; end; ostatni_poczatek_artykulu=poziom_poczatku_artykulu; local function ToNumberPoziomArtykulu(poziom_artykulu) local numer=tonumber(poziom_artykulu) or 1; if(numer<1)then numer=1;end; return numer; end; poziom_artykulu=ToNumberPoziomArtykulu(poziom_artykulu); poziom_artykulu=poziom_artykulu+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka; local numer_poziomu=HNumerPoziomow(poziom_artykulu); if(p>1)then local numer_poprzedni=tonumber(tab_lista[2][p-1][2][1]) or 1; local id_poprzednie=tab_lista[2][p-1][4]; local numer=tonumber(tab_lista[2][p][2][1]) or 1; local id=tab_lista[2][p][4]; if((numer_poprzedni==0)and(not id_poprzednie)and(not id)and(numer>0))then if(#tab_numer>(HNumerPoziomowNaglowkow(0) or 0)+poziom_zerowego_naglowka)then tab_numer[#tab_numer]=(tab_numer[#tab_numer] or 0)+1; tab_poziomowo={}; end; end; end; local prefix_poziom_artykulu=poziom_artykulu; local b=0; local tab_artykul_w_bazie=mw.text.split(artykul,"/"); if(tab_poprzedni_artykul_w_bazie)then if(poprzedni_poziom_artykulu)then if(poprzedni_poziom_artykulu==poziom_artykulu)then for c=1,#tab_artykul_w_bazie,1 do local podstrona_artykul=tab_artykul_w_bazie[c]; local podstrona_nazwy_artykulu=tab_poprzedni_artykul_w_bazie[c]; if(podstrona_artykul==podstrona_nazwy_artykulu)then b=b+1; end; end; else b=0; end; end; if(poziom_znakowy_rozdzialu<0)then if(#tab_numer~=0)then if(poziom_artykulu<=(poziom_pierwszego_ujemnego_naglowka or 0))then tab_poziomowo=tab_numer_4; tab_numer={}; HNumerArtykulu=HNumerPoziomow_4; elseif((poziom_poprzedni_artykulu)and(poziom_artykulu>(poziom_pierwszego_ujemnego_naglowka or 0))and(poziom_poprzedni_artykulu>(poziom_pierwszego_ujemnego_spisu_tresci or 0))and(poziom_artykulu<=(poziom_pierwszego_ujemnego_spisu_tresci or 0)))then HNumerArtykulu=stronicowyparser_potrzebne_modul.LiczonyHNumer(); for i=#tab_poziomowo,numer_poziomu+1,-1 do table.remove(tab_numer,i); end; tab_numer[#tab_numer]=(tab_numer[#tab_numer] or 0 ) + 1; tab_poziomowo=tab_numer; tab_numer={}; elseif((poziom_naglowka>=poziom_artykulu)or((poziom_rozdzialu==poziom_artykulu) and((numer_poziomu<numer_rozdzialu) or((numer_poziomu==numer_rozdzialu) and(poziom_poczatku_rozdzialu==poziom_poczatku_artykulu) )) ))then local tab_numer2={}; for i=1,(HNumerPoziomowNaglowkow(0) or 0)+poziom_zerowego_naglowka,1 do tab_numer2[i]=tab_numer[i]; end; local tab_poziomowo2={}; for i=(HNumerPoziomowNaglowkow(0) or 0)+poziom_zerowego_naglowka+1,#tab_numer,1 do tab_poziomowo2[i-(HNumerPoziomowNaglowkow(0) or 0)-poziom_zerowego_naglowka]=tab_numer[i]; end; local indeks=(((HNumerPoziomowNaglowkow(0) or 0)+poziom_zerowego_naglowka+1>#tab_numer) and 0 or (#tab_numer-(HNumerPoziomowNaglowkow(0) or 0)-poziom_zerowego_naglowka)); for i=1,numer_poziomu,1 do tab_poziomowo2[i+indeks]=tab_poziomowo[i]; end; tab_numer=tab_numer2; tab_poziomowo=tab_poziomowo2; --[[tab_poziomowo=tab_numer; tab_numer={};]] HNumerArtykulu=stronicowyparser_potrzebne_modul.LiczonyHNumer(); --local numer_poziomu=HNumerPoziomow(poziom_artykulu+(ostatni_rozdzial_dodatni or 0),#tab_poziomowo+1); end; end; end; elseif(#tab_numer>numer_poziomu)then tab_poziomowo={}; tab_poziomowo[1]=tab_numer[numer_poziomu]; for i=#tab_numer,numer_poziomu,-1 do table.remove(tab_numer,i); end; elseif((#tab_numer<=numer_rozdzialu)and(numer_rozdzialu>=numer_poziomu))then local numer_rozdzialu_dodatniego=(HNumerPoziomowNaglowkow(0) or 0)+poziom_zerowego_naglowka; if((numer_rozdzialu_dodatniego>0)or((numer_rozdzialu==numer_poziomu)and(poziom_poczatku_rozdzialu==poziom_poczatku_artykulu)))then if(#tab_numer>=numer_rozdzialu_dodatniego)then local tab_numer2={}; for i=1,numer_rozdzialu_dodatniego,1 do tab_numer2[i]=tab_numer[i]; end; tab_poziomowo={}; for i=numer_rozdzialu_dodatniego+1,#tab_numer,1 do tab_poziomowo[i-numer_rozdzialu_dodatniego]=tab_numer[i]; end; tab_numer=tab_numer2; end; end; end; poprzedni_poziom_artykulu=poziom_artykulu; local czy_z_rozdzialem=(tab_artykul_w_bazie[1]==rozdzial); if((p==1)and(czy_z_rozdzialem))then b=1;end; czy_tytul_rozdzial=((p==1)and true or czy_tytul_rozdzial) and (czy_z_rozdzialem); local dodatek=b-((czy_tytul_rozdzial)and 0 or 1); dodatek=((dodatek>0)and dodatek or 0); if((poziomowo)and(poziom_znakowy_rozdzialu<0))then if(poziom_naglowka>=poziom_artykulu)then local numer_poziomu=HNumerPoziomu(poziom_naglowka,numer_rozdzialu-(HNumerPoziomowNaglowkow(0) or 0)); end; end; local stala=poziom_artykulu; local numer_poziomu=HNumerPoziomu(stala); poziom_artykulu=stala+dodatek; local numer=HNumerArtykulu(poziom_artykulu); local roznica=numer_poziomu-numer; if(roznica>0)then numer=HNumerArtykulu(poziom_artykulu,numer_poziomu); end; if(#tab_poziomowo<numer)then for i=#tab_poziomowo+1,numer,1 do table.insert(tab_poziomowo,1); end; else if(#tab_poziomowo>numer)then for i=#tab_poziomowo,numer+1,-1 do table.remove(tab_poziomowo,i); end; end; tab_poziomowo[#tab_poziomowo]=(tab_poziomowo[#tab_poziomowo] or 0)+1; end; tab_poprzedni_artykul_w_bazie=tab_artykul_w_bazie; poziom_poprzedni_artykulu=poziom_artykulu; end; local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,artykul,tab_numer,tab_poziomowo); if(poziomowo)then if(tab_lista[2][p+1])then local numer_nastepny=tonumber(tab_lista[2][p+1][2][1]) or 1; local id_nastepny=tab_lista[2][p+1][4]; local numer=tonumber(tab_lista[2][p][2][1]) or 1; local id=tab_lista[2][p][4]; if((numer_nastepny==0)and(not id_nastepny)and(not id)and(numer>0))then tab_poziomowo={tab_numer[(HNumerPoziomowNaglowkow(0) or 0)+poziom_zerowego_naglowka+1],}; for i=#tab_numer,(HNumerPoziomowNaglowkow(0) or 0)+poziom_zerowego_naglowka+1,-1 do table.remove(tab_numer,i); end; end; end; poprzedni_tab_poziomowo=tab_poziomowo; end; if(wartosc)then return wartosc;end; if(not poziomowo)then i=i+1; end; end; end; if(not czy_ma_elementy)then poprzedni_tab_poziomowo=nil; end; else poprzedni_tab_poziomowo=nil; end; end; return; end; p["PobierzNazwęArtykułu"]=function(frame) local s=1; local function __FUNKCJA(poziomowo,i,ktory,numer,artykul,tab_numer,tab_poziomowo) if((not poziomowo)and(i==numer))then if(s==ktory)then return artykul; else s=s+1; end; elseif(poziomowo)then if((table.concat(tab_numer,".") ..((#tab_numer>0) and "." or "") ..table.concat(tab_poziomowo,"."))==numer)then if(s==ktory)then return artykul; else s=s+1; end; end; end; end; return PobierzNumerLubNazweArtykulu(frame,__FUNKCJA,true); end; p["PobierzNumerArtykułu"]=function(frame) local s=1; local function __FUNKCJA(poziomowo,i,ktory,nazwa_artykulu,artykul,tab_numer,tab_poziomowo) if(nazwa_artykulu==artykul)then if(s==ktory)then if(poziomowo)then return (table.concat(tab_numer,".")..((#tab_numer>0) and ((#tab_poziomowo>0) and "." or "") or "")..table.concat(tab_poziomowo,".")); else return i; end; end; s=s+1; end; end; return PobierzNumerLubNazweArtykulu(frame,__FUNKCJA,false); end; p["SubNazwaNadArtykułu"]=function(frame) local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame); stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame); local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame); if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end; local args=stronicowyparser_potrzebne_modul:Args(frame); local numer=tonumber(args[1]) or 0; local krok=tonumber(args[2])or 1; local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame); return stronicowyparser_potrzebne_modul.SubNazwaNadStrony(nazwa_artykulu,numer,krok); end; p["NazwaNadArtykułu"]=function(frame) local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame); stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame); local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame); if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end; local args=stronicowyparser_potrzebne_modul:Args(frame); local numer=tonumber(args[1]) or 1; local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame); return stronicowyparser_potrzebne_modul.SubNazwaNadStrony(nazwa_artykulu,1,numer); end; p["NazwaLinkuArtykułu"]=function(frame) local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame); stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame); local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame); if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end; local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame); local ostatni_artykul; for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do if(tab_lista[2])then for _,artykul_w_bazie in ipairs(tab_lista[2])do if(type(artykul_w_bazie[1])~="table")then if(artykul_w_bazie[1]==nazwa_artykulu)then return artykul_w_bazie[1]; end; elseif(artykul_w_bazie[1][1]==nazwa_artykulu)then return artykul_w_bazie[1][2]; end; end; end; end; return "(błąd)"; end; p["LiczbaArtykułówKsiążki"]=function(frame) local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame); stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame); local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame); if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end; local parametry_modul=require("Module:Parametry"); local args=stronicowyparser_potrzebne_modul:Args(); local naglowek=parametry_modul.CzyTak(args["nagłówek"]); local tab_artykul=(not naglowek) and {} or nil; local i=0; for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do if(tab_lista[2])then for _,artykul_w_bazie in ipairs(tab_lista[2])do local nazwa_artykulu=artykul_w_bazie[1][1] or artykul_w_bazie[1]; local artykul=(not naglowek) and mw.ustring.gsub(nazwa_artykulu,"^([^#]*)#(.*)$","%1") or nazwa_artykulu; if(naglowek or not tab_artykul[artykul])then if(not naglowek)then tab_artykul[artykul]=true; end; i=i+1; end; end; end; end; return i; end; p["LiniaArtykułuKsiążki"]=function(frame) local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame); stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame); local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame); if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end; local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame); local parametry_modul=require("Module:Parametry"); local args=stronicowyparser_potrzebne_modul:Args(); local czy_analiza=parametry_modul.CzyTak(args["analiza"]); for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do if(tab_lista[2])then for _,artykul_w_bazie in ipairs(tab_lista[2])do local artykul_ksiazki=artykul_w_bazie[1][1] or artykul_w_bazie[1]; if(artykul_ksiazki==nazwa_artykulu)then if(not czy_analiza)then return artykul_w_bazie[3]; else local function AnalizaLiniiArtykolow() local czy_spis_tresci=mw.ustring.match(artykul_w_bazie[3],"({{%s*[Ss]pisTreści%s*|[^{}]*}})"); if(czy_spis_tresci)then local techniczne_modul=require("Module:Techniczne"); local parametry_szablony=techniczne_modul["ParsujWywołanieSzablonu"](czy_spis_tresci); local nazwa_artykulu=parametry_szablony[1]; ------ local nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame); local pelna_nazwa_strony=(nazwa_artykulu=="")and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu; local link= "[["..pelna_nazwa_strony.."|"..nazwa_artykulu.."]]"; local linia2,_=mw.ustring.gsub(artykul_w_bazie[3],"({{%s*[Ss]pisTreści%s*|[^{}]*}})",link); return linia2; else local czy_spis_tresci=mw.ustring.match(artykul_w_bazie[3],"({{%s*[Ss]ekcja[%s_]+referencyjna%s*|[^{}]*}})"); if(czy_spis_tresci)then local linia2,_=mw.ustring.gsub(artykul_w_bazie[3],"({{%s*[Ss]ekcja[%s_]+referencyjna%s*|)","%1astandardowo=tak|"); return linia2; else local nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame); local function adresuj_linki(a,b) return "[["..nazwa_ksiazki.."/"..a..(b or "").."]]"; end; local artykul=mw.ustring.gsub(artykul_w_bazie[3],"%[%[%s*/([^%[%]|]-)/*%s*(|.*)%]%]",adresuj_linki); artykul=mw.ustring.gsub(artykul,"%[%[%s*/([^%[%]|]-)/*%s*%]%]",adresuj_linki); return artykul; end; end; end; return AnalizaLiniiArtykolow(); end end; end; end; end; local uzupelniaj_sekcje_artykulow=parametry_modul.CzyTak(args["uzupełniaj sekcje artykułów"]); if(uzupelniaj_sekcje_artykulow)then if(mw.ustring.match(nazwa_artykulu,"^[^#]*#(.+)$"))then local naglowek=mw.ustring.match(nazwa_artykulu,"^[^#]*#(.+)$"); if(parametry_modul["CzyTakCiąg"](naglowek))then local pelna_nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame) return "[["..pelna_nazwa_ksiazki..((nazwa_artykulu~="")and("/"..nazwa_artykulu) or "").."|"..naglowek.."]]"; end; end; end; end; p["AktualnaKsiążka"]=function(frame,__error) local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame); stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame); return stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame) or ((not __error)and "(błąd)" or nil); end; p["NazwaAktualnyArtykuł"]=function(frame,__error) local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame); stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame); return stronicowyparser_potrzebne_modul:NazwaArtykuluKsiazki(frame) or ((not __error)and "(błąd)" or nil); end; p["ListaNagłówkówKsiążki"] = function(frame) local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame); stronicowyparser_potrzebne_modul:ParametryPudelkaKsiazki(frame); local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyArtykulowKsiazki(frame); if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end; local stronicowyparser_obiekty=mw.loadData("Module:StronicowyParser/obiekty"); local tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek=stronicowyparser_obiekty.tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek; local tab_rozdzialow_glownych_spisow_tresci_ksiazek=stronicowyparser_obiekty.tab_rozdzialow_glownych_spisow_tresci_ksiazek; local czy_sa_rozdzialy=nil; local pelna_nazwa_ksiazki=stronicowyparser_potrzebne_modul:PelnaNazwaKsiazki(frame); local args=stronicowyparser_potrzebne_modul:Args(); local wikikod=""; local linki_modul=require("Module:Linki"); for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do local rozdzial=tab_lista[1][1]; local numer_rozdzialu=tab_lista[1][2][1]; if(numer_rozdzialu>0)then if(not tab_rozdzialow_glownych_spisow_tresci_ksiazek[rozdzial])then wikikod=((wikikod~="")and (wikikod.." &nbsp;—&nbsp; ") or "") ..linki_modul["Link wewnętrzny"]{ ["strona"]=pelna_nazwa_ksiazki, ["nagłówek"]=rozdzial, ["nazwa"]=rozdzial, ["bez znaczników"]=args["bez znaczników"], ["bez przetwarzania"]=args["bez przetwarzania"], }; end; czy_sa_rozdzialy=true; end; end; if(not czy_sa_rozdzialy)then return "(błąd: brak rozdziałów)";end; return wikikod; end; p["ArtykułSubst"] = function(frame) local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych; local nazwa_przestrzeni;local nazwa_ksiazki;local nazwa_artykulu; if(not tabela_listy_danych_analizy_ksiazki.zastepczy)then nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.nazwa_artykulu; else nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni; nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki; nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_artykulu; end; local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local pobierz_nazwa_artykulu=PobierzParametr("pobierz pełną nazwę artykułu"); local pobierz_adres_ksiazki=PobierzParametr("pobierz pełną nazwę książki"); local czy_pobierz_pelna_nazwa_artykulu=parametry_modul.CzyTak(pobierz_nazwa_artykulu); local czy_pobierz_pelna_nazwa_ksiazki=parametry_modul.CzyTak(pobierz_adres_ksiazki); if(czy_pobierz_pelna_nazwa_artykulu and not czy_pobierz_pelna_nazwa_ksiazki)then return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu; elseif(not czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki; elseif(czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then return "(błąd)"; end; local nazwa_strony=((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu; local techniczne_modul=require("Module:Techniczne"); local szablon=techniczne_modul.NazwaSzablonu(nazwa_strony); return frame:expandTemplate{title=szablon,args={},}; end; p["KsiążkaSubst"] = function(frame) local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych; local str=tabela_listy_danych_analizy_ksiazki["KsiążkaSubst"]; return str; end; p["StronaSubst"] = function(frame) local parametry_modul=require("Module:Parametry"); local args=frame and ((frame.getParent and ((parametry_modul.CzyTak(frame.args["wyspecjalizowana"]))and frame or frame:getParent()) or frame).args or frame) or {}; local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych; local tab_stronasubst=tabela_listy_danych_analizy_ksiazki["StronaSubst"]; if(not tab_stronasubst)then return;end; local pierwszy,_=mw.ustring.gsub(args[1],"[%s_]+"," "); local tab_strona=tab_stronasubst[pierwszy]; if(not tab_strona)then return;end; local link=args["link"]; local czy_link=parametry_modul.CzyTak(link); local stronasubst=tab_strona[(czy_link and "tak" or "")]; return stronasubst; end; p["CzyStronęNumerować"] = function(frame) local strona=frame.args[1]; local nazwy_modul=require("Module:Nazwy"); strona=nazwy_modul["PEŁNANAZWASTRONY"](strona); local pudelko_modul=require("Module:Pudełko"); if(strona==pudelko_modul["Strona główna tego projektu"](frame))then return; end; if(strona==pudelko_modul["Strona główna dla dzieci tego projektu"](frame))then return; end; if(mw.ustring.match(strona,"^Szablon:SG/"))then return; end; local zbiory={ ["Szablon:Nowe podręczniki miesiąca/Zwycięzca"]=true, ["Wikibooks:Polecane książki"]=true, ["Szablon:Wyróżnienia książek miesiąca/Wyróżniony"]=true, } if(zbiory[strona])then return; end; if(mw.ustring.match(strona,"^Szablon:Polecane książki/") or(mw.ustring.match(strona,"^Szablon:Nowe podręczniki miesiąca/")) or(mw.ustring.match(strona,"^Szablon:Wyróżnienia książek miesiąca/")) )then return; end; return "tak"; end; function p.HNumer(frame) local p=frame.args["wyspecjalizowana"] and frame or frame:getParent(); if((not p) or (not p.args[1]))then local blad_module=require("Module:Błąd"); local frame2=p:newChild{args={[1]="Podano złe parametry w szablonie: [[Szablon:HLiczba]].",["tag"]="span",},} blad_module.error(frame2); return; end; local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local naglowek,licznik=stronicowyparser_rozdzialy_modul.PodajRozdzial(p.args[1]); local id2,_=mw.ustring.gsub(naglowek,"^[%s_]",""); id2,_=mw.ustring.gsub(id2,"[%s_]$",""); id2,_=mw.ustring.gsub(id2,"[%s_]","_"); local id3,_=mw.ustring.gsub(mw.uri.encode(mw.text.encode(id2),"WIKI"),"(%%)","."); if(licznik>6)then local id=p.args["id"]; local styl=p.args["styl"]; local klasa=p.args["klasa"]; local atrybuty=p.args["atrybuty"]; local parametry_modul=require("Module:Parametry"); return "<h6"..(parametry_modul.CzyTak(id)and " id=\""..id.."\"" or "") ..(parametry_modul.CzyTak(styl)and " style=\""..styl.."\"" or "") .." class=\"mw-hnumber mw-hnumber-"..licznik..((parametry_modul.CzyTak(klasa)) and (" "..klasa) or "").."\"" ..(parametry_modul.CzyTak(atrybuty)and " "..atrybuty or "") ..">"..((id2~=id3) and ("<span id=\""..id3.."\"></span>") or "").."<span id=\""..id2.."\" class=\"mw-headline\">"..naglowek.."</span></h6>"; elseif(licznik<1)then local blad_module=require("Module:Błąd"); local frame2=pf:newChild{args={[1]="Nie podano nagłówka w szablonie: [[Szablon:HLiczba]].",["tag"]="span",},} blad_module.error(frame2); else local id=p.args["id"]; local styl=p.args["styl"]; local klasa=p.args["klasa"]; local atrybuty=p.args["atrybuty"]; local parametry_modul=require("Module:Parametry"); return "<h"..licznik..(parametry_modul.CzyTak(id)and " id=\""..id.."\"" or "") ..(parametry_modul.CzyTak(styl)and " style=\""..styl.."\"" or "") .." class=\""..((parametry_modul.CzyTak(klasa)) and klasa or "").."\"" ..(parametry_modul.CzyTak(atrybuty)and " "..atrybuty or "")..">"..((id2~=id3) and ("<span id=\""..id3.."\"></span>") or "").."<span id=\""..id2.."\" class=\"mw-headline\">"..naglowek.."</span></h"..licznik..">"; end; end; function p.TOC(frame,czy_rozciagnij,gdy_pusty_spis_tresci) local tabela_listy_danych_analizy_ksiazki=mw.loadData('Module:StronicowyParser/informacje').tablica_zebranych_danych_ksiazkowych; local nazwy_modul=require("Module:Nazwy"); local parametry_modul=require("Module:Parametry"); local ksiazkowe_modul=require("Module:Książkowe"); local args=(frame)and (parametry_modul.CzyTak(frame.args["wyspecjalizowana"])and frame.args or frame:getParent().args) or {}; local nazwa_przestrzeni=args[2] and nazwy_modul["NAZWAPRZESTRZENI"](args[2]) or tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; local nazwa_ksiazki=args[2] and ksiazkowe_modul["NazwaKsiążki"](args[2]) or tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; local nazwa_artykulu=args[1] and args[1] or tabela_listy_danych_analizy_ksiazki.nazwa_artykulu; local czy_nie_aktualny=( (nazwa_przestrzeni~=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni) or(nazwa_ksiazki~=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki) or (nazwa_artykulu~=tabela_listy_danych_analizy_ksiazki.nazwa_artykulu) ); local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); if ((tabela_listy_danych_analizy_ksiazki.TOC_StronaZbiorcza)or(tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu and tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni] and tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni][nazwa_ksiazki] and tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni][nazwa_ksiazki].lista_artykolow[nazwa_artykulu] and tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni][nazwa_ksiazki].lista_artykolow[nazwa_artykulu].TOC)) then mw.log(tabela_listy_danych_analizy_ksiazki.TOC_StronaZbiorcza); local spis_tresci_artykulu=stronicowyparser_potrzebne_modul.TOC(frame,tabela_listy_danych_analizy_ksiazki.TOC_StronaZbiorcza or tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni][nazwa_ksiazki].lista_artykolow[nazwa_artykulu].TOC,czy_nie_aktualny,czy_rozciagnij); return spis_tresci_artykulu; elseif(not gdy_pusty_spis_tresci)then local spis_tresci_artykulu=stronicowyparser_potrzebne_modul.TOC(frame,nil,czy_nie_aktualny,czy_rozciagnij); return spis_tresci_artykulu; end; end; function p.WykazModolow(frame,czy_rozciagnij) local tabela_listy_danych_analizy_ksiazki=mw.loadData('Module:StronicowyParser/informacje').tablica_zebranych_danych_ksiazkowych; local nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; local nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; local lista_ksiazek_w_przestrzeni_nazw=tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]; if(not lista_ksiazek_w_przestrzeni_nazw)then return nil;end; local tab_lista_artykulow_w_ksiazce_w_ksiazce=lista_ksiazek_w_przestrzeni_nazw[nazwa_ksiazki]; if(not tab_lista_artykulow_w_ksiazce_w_ksiazce)then return nil;end; local spis=tab_lista_artykulow_w_ksiazce_w_ksiazce.spis; if(not spis)then return nil;end; local parametry_modul=require("Module:Parametry"); local spis_ksiazkowy=parametry_modul.CzyTak(frame.args["spis książkowy"]); local spis_rzeczy=parametry_modul.CzyTak(frame.args["spis rzeczy"]); local tylko_naglowki=parametry_modul.CzyTak(frame.args["nagłówki"]); local wysokosc=frame.args["wysokość"]; local wykaz_modolow_w_liscie=""; local i=1; for _,tab_artykul in ipairs(spis)do if(tab_artykul[2])then for _,tab_pozycja in ipairs(tab_artykul[2])do if(type(tab_pozycja[1])~="table")then sformatowana_nazwa_artykulu,_=mw.ustring.gsub(tab_pozycja[1],"_"," "); else sformatowana_nazwa_artykulu,_=mw.ustring.gsub(tab_pozycja[1][1],"_"," "); end; local id=tab_pozycja[4] if(not tylko_naglowki or id)then if(not spis_ksiazkowy)then wykaz_modolow_w_liscie=((wykaz_modolow_w_liscie~="") and (wykaz_modolow_w_liscie.."\n") or "")..'<li>[['..((not spis_rzeczy or not id)and (((nazwa_przestrzeni=="")and nazwa_ksiazki or nazwa_przestrzeni..":"..nazwa_ksiazki).."/") or "#")..sformatowana_nazwa_artykulu.."|<span class=\"tocnumber\">"..i.."</span><span class=\"toctext\">"..sformatowana_nazwa_artykulu..'</span>]]</li>'; else wykaz_modolow_w_liscie=((wykaz_modolow_w_liscie~="") and (wykaz_modolow_w_liscie.."\n") or "")..'{{SpisZw||[['..((not spis_rzeczy or not id)and (((nazwa_przestrzeni=="")and nazwa_ksiazki or nazwa_przestrzeni..":"..nazwa_ksiazki).."/") or "#")..sformatowana_nazwa_artykulu.."|"..sformatowana_nazwa_artykulu.."]]|"..i.."|100%}}"; end; i=i+1; end; end; end; end; if(wykaz_modolow_w_liscie=="")then return nil;end; if(not spis_ksiazkowy)then wykaz_modolow_w_liscie="<ul>"..wykaz_modolow_w_liscie.."</ul>"; wykaz_modolow_w_liscie='<div class="toc_ogólnie_spis toc_wykaz" style="width:100%;max-height:400px;overflow:auto;">'..wykaz_modolow_w_liscie.."</div>"; wykaz_modolow_w_liscie='{{Tabela nawigacyjna|styl=width:'..(czy_rozciagnij and "100%" or "auto")..';font-size:14px;line-height:1.2em;background-color:white;|tytuł=<div style="font-size:14px;line-height:1.2em;background-color:white;text-align:left;white-space:nowrap;">Wykaz modułów w książce</div>|spis='..wykaz_modolow_w_liscie..'|funkcja=UkrytaWikitabelowaListaMenu}}'; else wykaz_modolow_w_liscie="<div class=\"toc_wykaz mw-overflow-y\" style=\""..(wysokosc and ("max-height:"..wysokosc..";overflow:auto;") or "").."border:solid #aaa 1px;padding:10px;width:auto;box-sizing:border-box;background-color:white;\">"..wykaz_modolow_w_liscie.."</div>"; end; local rozwiniety_wikikod=frame:preprocess(wykaz_modolow_w_liscie); return rozwiniety_wikikod; end; function p.NazwaModolu() local tabela_listy_danych_analizy_ksiazki=mw.loadData('Module:StronicowyParser/informacje').tablica_zebranych_danych_ksiazkowych; local nazwy_np_modul=mw.loadData('Moduł:Nazwy/Np'); local nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.nazwa_artykulu; if(nazwa_artykulu==nil)then return "[["..nazwy_np_modul.Category..": Nie można wygenerować nazwy strony]]"; else return nazwa_artykulu; end; end; function p.Wstep_do_licencji(frame) local element_licencji_1='<strong>Autor:</strong> '..frame.args[1]..'<BR>'; local element_licencji_2; if((frame.args[2]~='')and(frame.args[2]~=nil))then element_licencji_2=frame.args[2]..'<BR>'; end; local element_licencji_3; if((frame.args[3]~='')and(frame.args[3]~=nil))then element_licencji_3='<strong>Email:</strong> '..frame.args[3]..'<BR>'; end; local element_licencji_4; if((frame.args[4]~='')and(frame.args[4]~=nil))then element_licencji_4='<strong>Dotyczy:</strong> '..frame.args[4].."<BR>"; else element_licencji_4='<strong>Dotyczy:</strong> książki, do której należy ta strona, oraz w niej zawartych stron i w nich podstron, a także w nich kolumn, wraz z zawartościami.<BR>'; end; if((frame.args[5]~='')and(frame.args[5]~=nil))then element_licencji_5=frame.args[5].."<BR>"; else element_licencji_5='Użytkownika książki, do której należy ta strona, oraz w niej zawartych stron i w nich podstron, a także w nich kolumn, wraz z zawartościami nie zwalnia z odpowiedzialności prawnoautorskiej nieprzeczytanie warunków licencjonowania.<BR>'; end; local element_licencji_6; if((frame.args[6]~='')and(frame.args[6]~=nil))then element_licencji_6='<strong>Umowa prawna:</strong> '..frame.args[6]..'<BR>'; else element_licencji_6='<strong>Umowa prawna:</strong> [http://creativecommons.org/licenses/by-sa/3.0/deed.pl Creative Commons: uznanie autorstwa oraz miejsca pochodzenia książki i jej jakikolwiek części, a także treści, teksty, tabele, wykresy, rysunki, wzory i inne elementy oraz ich części zawarte w książce, i tą książkę, nawet w postaci przerobionej nie można umieszczać w jakikolwiek formie na czasopismach naukowych, archiwach prac, itp.]<BR>'; end; if((frame.args[7]~='')and(frame.args[7]~=nil))then element_licencji_7=frame.args[7].."<BR>"; else element_licencji_7='Autor tej książki dołożył wszelką staranność, aby informacje zawarte w książce były poprawne i najwyższej jakości, jednakże nie udzielana jest żadna gwarancja, czy też rękojma. Autor nie jest odpowiedzialny za wykorzystanie informacji zawarte w książce nawet jeśli wywołaby jakąś szkodę, straty w zyskach, zastoju w prowadzeniu firmy, przedsiębiorstwa lub spółki bądź utraty informacji niezależnie, czy autor (a nawet [https://pl.wikibooks.org Wikibooks]) został powiadomiony o możliwości wystąpienie szkód. Informacje zawarte w książce mogą być wykorzystane tylko na własną odpowiedzialność.<BR>'; end; local licencja=element_licencji_1..((element_licencji_2)and element_licencji_2 or "")..((element_licencji_3)and element_licencji_3 or "") ..element_licencji_4..element_licencji_5..element_licencji_6..element_licencji_7; return licencja; end; function p.Licencja(frame,czy_rozciagnij) local tabela_listy_danych_analizy_ksiazki=mw.loadData('Module:StronicowyParser/informacje').tablica_zebranych_danych_ksiazkowych; local menu_z_licencja; local nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; local nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; local licencja=tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni][nazwa_ksiazki].licencja; if(licencja)then if(licencja[1])then local frame={}; frame.args={licencja[1],licencja[2],licencja[3],licencja[4],licencja[5],licencja[6],licencja[7]}; local ramka_z_licencja='<div style="margin-left:0px;padding:3px;width:100%;height:auto;box-sizing:border-box;">'..p.Wstep_do_licencji(frame)..'</div>'; menu_z_licencja='{{Tabela nawigacyjna|styl=width:'..(czy_rozciagnij and "100%" or "auto")..';font-size:14px;line-height:1.2em;background-color:white;|tytuł=<div style="font-size:14px;line-height:1.2em;background-color:white;text-align:left;white-space:nowrap;">Licencja</div>|spis='..ramka_z_licencja..'|funkcja=StatycznaWikitabelowaListaMenu}}'; else return nil; end; local frame=mw.getCurrentFrame(); local rozwiniety_wikikod=frame:preprocess(menu_z_licencja); return rozwiniety_wikikod; else return nil; end; end; function p.Autor(frame) local tabela_listy_danych_analizy_ksiazki=mw.loadData('Module:StronicowyParser/informacje').tablica_zebranych_danych_ksiazkowych; local nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; local nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; local licencja=tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni][nazwa_ksiazki].licencja; if(tabela_listy_danych_analizy_ksiazki.licencja)then return licencja[1]; end; end; function p.PierwszaStrona(frame) local prawe_menu=""; local parametry_modul=require("Module:Parametry"); local czy_rozciagnij=parametry_modul.CzyTak(frame.args["rozciągnij"]) if(parametry_modul.CzyTak(frame.args[1]))then prawe_menu='<div style="margin-top:5px;font-size:1.9em;line-height:25px;text-align:left;">'..p.NazwaModolu()..'</div><hr style=\"margin:5px 0\"/>'; end; if(parametry_modul.CzyTak(frame.args[2]))then local licencja=p.Licencja(frame,czy_rozciagnij); if(licencja~=nil)then prawe_menu=prawe_menu..licencja; else local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local uchwyt_strony=mw.title.getCurrentTitle(); local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); local nazwa_przestrzeni_nazw_strony=require("Module:Nazwy")["NAZWAPRZESTRZENI"](); local element_zdania_kategorii=(nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Main)and "na stronach głównych, książek" or ((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Wikijunior)and "na stronach głównych, książek dla dzieci" or ((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.User)and "na stronach głównych, książek użytkowników" or((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Wikibooks)and "na stronach głównych, książek brudnopisu projektu" or "na stronach głównych, publikacji"))); local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych; local kategoria_braku_licencji=(not tabela_listy_danych_analizy_ksiazki.korzystane_strona_glowna_nie_istnieje)and"[["..nazwy_np_modul.Category..": Brak licencji, "..element_zdania_kategorii.."]]" or ""; prawe_menu=prawe_menu..kategoria_braku_licencji; end; end; if(parametry_modul.CzyTak(frame.args[3]))then local wykaz_artykulow=p.WykazModolow(frame,czy_rozciagnij); if(wykaz_artykulow~=nil)then prawe_menu=prawe_menu.."<hr style=\"margin:5px 0\"/>"..wykaz_artykulow; end; end; if(parametry_modul.CzyTak(frame.args[4]))then local spis_tresci=p.TOC(frame,czy_rozciagnij,true); if(spis_tresci~=nil)then prawe_menu=prawe_menu.."<hr style=\"margin:5px 0\"/>"..spis_tresci; end; end; local wysokosc=frame.args["wysokość"]; return "<div style=\"padding:10px;border: solid #aaa 1px;background-color:white;box-sizing:border-box;width:700px;\"><div class=\"pierwsza_strona mw-overflow-y\" style=\"max-height:"..(wysokosc or "100%")..";overflow:auto;height:100%;box-sizing:border-box;\"><div style=\"display:flex;flex-direction:column;width:auto;height:auto;box-sizing:border-box;\">"..prawe_menu.."</div></div></div>"; end; function p.SpisTresci(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame); local nazwa_artykulu=args["artykuł"] or args[1]; local nazwa_ksiazki=args["książka"] or args[2]; if(not parametry_modul.CzyTak(nazwa_ksiazki))then local tabela_listy_danych_analizy_ksiazki=mw.loadData('Module:StronicowyParser/informacje').tablica_zebranych_danych_ksiazkowych; local uzyskana_nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; local uzyskana_nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; nazwa_ksiazki=((uzyskana_nazwa_przestrzeni~=nil) and (uzyskana_nazwa_przestrzeni..":") or "")..uzyskana_nazwa_ksiazki; end; local brak=(nazwa_artykulu and mw.ustring.match(nazwa_artykulu,"[|<>{}%[%]]") or nil) or (nazwa_ksiazki and mw.ustring.match(nazwa_ksiazki,"[|<>{}%[%]]") or nil); if(brak~=nil)then local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); local nazwa_przestrzeni_nazw_strony=require("Module:Nazwy")["NAZWAPRZESTRZENI"](); local element_zdania_kategorii=(nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Main)and "artykułów," or ((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Wikijunior)and "artykułów dla dzieci," or ((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.User)and "stron użytkowników," or ((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Wikibooks)and "stron brudnopisu projektu," or "stron,"))); return "[["..nazwy_np_modul.Category..":Nazwy "..element_zdania_kategorii.." w spisach treści, zawierają niedozwolone znaki]]"; end; local html_modul=require("Module:Html"); local nazwy_modul=require("Module:Nazwy"); local ksiazkowe_modul=require("Module:Książkowe"); local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_ksiazki); local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](nazwa_ksiazki); nazwa_ksiazki=html_modul.TransformacjaKlasyZnakowej(nazwa_ksiazki); local nazwa_artykulu=html_modul.TransformacjaKlasyZnakowej(nazwa_artykulu); local nazwa_strony=(nazwa_artykulu=="")and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu; local pelna_nazwa_strony=(nazwa_przestrzeni=="")and nazwa_strony or nazwa_przestrzeni..":"..nazwa_strony; local tekst_artykulu=p.SpreparowanyWikikodStrony(pelna_nazwa_strony); local nazwa=args["nazwa"] or args[3]; local nazwa_strony_artykulu=parametry_modul.CzyTak(nazwa) and nazwa or mw.ustring.gsub(mw.ustring.match(nazwa_artykulu,"[^/]*$"),"_"," "); local dodatek=args["dodatek"] or args[4]; if(not tekst_artykulu)then if(nazwa_artykulu~="")then return "\n"..mw.ustring.rep("=",6).."<span style=\"color:red\">[["..pelna_nazwa_strony.."|"..nazwa_strony_artykulu.."]]</span>"..mw.ustring.rep("=",6).."\n"; else return frame:getParent():preprocess("{{Błąd|Wywołano szablon z argumentem pierwszym pustym.}}"); end; else local twor_spisu_tresci="[["..pelna_nazwa_strony.."|"..nazwa_strony_artykulu.."]]"..(((dodatek)and(dodatek~="")) and (" "..dodatek) or ""); twor_spisu_tresci=mw.ustring.rep("=",6)..twor_spisu_tresci..mw.ustring.rep("=",6).."\n"; local stronicowyparser_dalszefunkcje_modul=require("Module:StronicowyParser/DalszeFunkcje"); local ulozenia_w_menu_spisu_tresci=stronicowyparser_dalszefunkcje_modul:SpisTresciWstep(tekst_artykulu, pelna_nazwa_strony); local atrybuty="style=\"margin-left:20px\""; local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); local toc=stronicowyparser_potrzebne_modul.TOCSilnik(ulozenia_w_menu_spisu_tresci, atrybuty); local limit=args["limit"]; local czy_limit=parametry_modul.CzyTak(limit); return '<div class="toc_ogólnie_spis toc_artykuł toclimit '..(czy_limit and ("toclimit-"..limit) or "")..'">\n'..twor_spisu_tresci..(toc and toc or "")..'</div>'; end; end; function IteratorFunkcja() local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local tabela_wypowiedzi=obiekty_modul.tablica_obiektow; local licznik=1; return function() local tabela_obiektu=tabela_wypowiedzi[licznik]; if(not tabela_obiektu)then return nil;end; local wartosc1=mw.ustring.gsub(tabela_obiektu[1],"%d+$",""); local wartosc2=tabela_obiektu[4]; licznik=licznik+1; return wartosc1,wartosc2; end; end; local iterator=IteratorFunkcja(); for nazwa_obiektu,czesc_nazwy_funkcji in iterator do p["Numer"..czesc_nazwy_funkcji] = function(frame) local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); return stronicowyparser_potrzebne_modul.NumerObiektu(frame,nazwa_obiektu); end; end; p["AnalizujSzablonemStronicowymArtykuł"]=function(frame) local tabela_listy_danych_analizy_ksiazki=mw.loadData('Module:StronicowyParser/informacje').tablica_zebranych_danych_ksiazkowych; return ""; end; function p.formatowanie() local tabela_listy_danych_analizy_ksiazki=mw.loadData('Module:StronicowyParser/informacje').tablica_zebranych_danych_ksiazkowych; return tabela_listy_danych_analizy_ksiazki.formatowanie; end; function p.WstawKategorie(frame) local stronicowyparser_kategorie_modul=require("Module:StronicowyParser/Kategorie"); return stronicowyparser_kategorie_modul.WstawKategorie(frame); end; function p.CzyStronaSubst(frame,pelnanazwastrony,czy_wymusic) if(czy_wymusic)then local nazwy_modul=require("Module:Nazwy"); local pelnanazwastronyaktualnej=nazwy_modul["PEŁNANAZWASTRONY"](); if(pelnanazwastrony~=pelnanazwastronyaktualnej)then local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst"); local TakFun=function(frame) return "tak";end;local NieFun=function(frame) return "";end; return stronicowyparser_stronasubst_modul.AnalizaStronaSubst(nil,pelnanazwastrony,TakFun,NieFun,nil); end; end; local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych; if(tabela_listy_danych_analizy_ksiazki["CzyStronaSubst"])then return "tak"; end; return ""; end; return p; p5oq5x9ojcvsgh0wo3ea7mxk1l6oeyi Wikipedysta:Persino/common.js 2 58552 437130 437128 2022-08-07T12:24:29Z Persino 2851 javascript text/javascript mw.loader.load( '//pl.wikibooks.org/w/index.php?action=raw&ctype=text/javascript&title=Wikipedysta:Persino/Gadget-StronicowyParser.js', 'text/javascript', true ); /**/ /* Umieszczony tutaj kod JavaScript zostanie załadowany przez każdego użytkownika, podczas każdego ładowania strony. */ // Frame Busting if (top != self) top.location.href = self.location.href; /* * Zmienna Common.pageInfo, jego elementy, instrukcja obsługi: * Common.pageInfo.namespace numer przestrzeni nazw (równe wgNamespaceNumber) * Common.pageInfo.name pełna nazwa strony * Common.pageInfo.title tytuł strony, czyli ostatnia część po '/' albo jest równe pageInfo.name, gdy nigdzie nie występuje slash * Common.pageInfo.book tytuł książki * Common.pageInfo.action akcja taka jaka jest w adresie URL pod "action=", w przypadku normalnego czytania strony, action jest równe "get" * Common.pageInfo.diff null w przypadku, gdy nie porównujemy wersji, w przeciwnym wypadku wartość występującą w adresie URL */ /*Przestrzeń nazw: Common, zdefiniowanym za pomocą tablicy*/ var Common=new Array(); /*Funkcje w przestrzeni nazw Common*/ Common.Naglowek=function(){ /* Skrypt odpowiedzialny za wyświetlanie szablonu Nagłówek [[Szablon:Nagłówek]] */ var hideAll = document.getElementById('mójNagłówekUkryj'); var noFooter = false; var footers = 0; var tags = document.getElementsByTagName('div'); for (var i = 0; i < tags.length; i++) { var el=tags[i].getAttribute("id"); if (el=='mojaStopka') footers++; else if (hideAll && (el=='mójNagłówek')) { tags[i].innerHTML=""; noFooter=true; } } if (noFooter) return; var footer = document.getElementById('mojaStopka'); if ((footer !== null) && (footers==1)) { var bodyContent = document.getElementById('bodyContent'); if (bodyContent !== null) { var s0=document.getElementById('mojaStopka0'); var s1=document.getElementById('mojaStopka1'); if ((s1 !== null) || ((s0 === null) && (bodyContent.innerHTML.length>8000))){ var strona=document.getElementById('strona'); if(strona!==null){ strona.appendChild(footer); }else{ var catlinks=document.getElementById('catlinks'); if(catlinks !== null){ bodyContent.insertBefore(footer,catlinks); }else{ bodyContent.appendChild(footer); } } } } } /* Koniec skryptu odpowiedzialnego za wyświetlanie szablonu Nagłówek [[Szablon:Nagłówek]] */ }; $(Common.Naglowek); /*Informacje o danej stronie*/ Common.PageInfoInit=function(){ var _g = /_/g; this.name = mw.config.get('wgPageName').replace(/_/g, ' '); this.namespace = mw.config.get('wgNamespaceNumber'); var i = this.name.search(/\/[^\/]*$/g); this.title = this.name.slice(i + 1); this.book = this.name.replace(/\/.*/g, ""); if ( document.URL.search("//pl.wikibooks.org/w/index.php") != -1 ) { re = /\&diff=/g; this.diff = re.test(document.URL); re = /\&action=[^\&]*/g; this.action = document.URL.match(re); if ( this.action === null ) { this.action = 'get'; } else { this.action = this.action[0].slice(8, this.action[0].length); } } else { this.diff = null; this.action = 'get'; } } Common.pageInfo = new Common.PageInfoInit(); /** Collapsible tables ********************************************************* * * Description: Allows tables to be collapsed, showing only the header. See * [[en:Wikipedia:NavFrame]]. * Maintainers: [[User:R. Koot]] */ Common.autoCollapse = 2; Common.collapseCaption = "ukryj"; Common.expandCaption = "pokaż"; Common.collapseTable=function( tableIndex ) { var Button = document.getElementById( "collapseButton" + tableIndex ); var Table = document.getElementById( "collapsibleTable" + tableIndex ); if ( !Table || !Button ) { return false; } var Rows = Table.rows; if ( Button.firstChild.data == Common.collapseCaption ) { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = "none"; } Button.firstChild.data = Common.expandCaption; } else { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = Rows[0].style.display; } Button.firstChild.data = Common.collapseCaption; } } Common.createCollapseButtons=function() { var tableIndex = 0; var NavigationBoxes = new Object(); var Tables = document.getElementsByTagName( "table" ); for ( var i = 0; i < Tables.length; i++ ) { if ( $(Tables[i]).hasClass( "collapsible" ) ) { /* only add button and increment count if there is a header row to work with */ var HeaderRow = Tables[i].getElementsByTagName( "tr" )[0]; if (!HeaderRow) continue; var Header = HeaderRow.getElementsByTagName( "th" )[0]; if (!Header) continue; NavigationBoxes[ tableIndex ] = Tables[i]; Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex ); var Button = document.createElement( "span" ); var ButtonLink = document.createElement( "a" ); var ButtonText = document.createTextNode( Common.collapseCaption ); Button.style.styleFloat = "right"; Button.style.cssFloat = "right"; Button.style.fontWeight = "normal"; Button.style.textAlign = "right"; Button.style.width = "6em"; ButtonLink.style.color = Header.style.color; ButtonLink.setAttribute( "id", "collapseButton" + tableIndex ); ButtonLink.setAttribute( "href", "javascript:Common.collapseTable(" + tableIndex + ");" ); ButtonLink.appendChild( ButtonText ); Button.appendChild( document.createTextNode( "[" ) ); Button.appendChild( ButtonLink ); Button.appendChild( document.createTextNode( "]" ) ); $(Header.childNodes[0]).has('a#collapseButton' + tableIndex).each(function(i,element){ $(element).remove(); }); Header.insertBefore( Button, Header.childNodes[0]); tableIndex++; } } for ( var i = 0; i < tableIndex; i++ ) { if ( $(NavigationBoxes[i]).hasClass( "collapsed" ) || ( tableIndex >= Common.autoCollapse && $(NavigationBoxes[i]).hasClass( "Common.autoCollapse" ) ) ) { collapseTable( i ); } else if ( $(NavigationBoxes[i]).hasClass( "innercollapse" ) ) { var element = NavigationBoxes[i]; while (element = element.parentNode) { if ( $(element).hasClass( "outercollapse" ) ) { collapseTable ( i ); break; } } } } } $(Common.createCollapseButtons ); /** Dynamic Navigation Bars (experimental) ************************************* * * Description: See [[Wikipedia:NavFrame]]. * Maintainers: UNMAINTAINED */ // set up the words in your language Common.NavigationBarHide = '[' + Common.collapseCaption + ']'; Common.NavigationBarShow = '[' + Common.expandCaption + ']'; // shows and hides content and picture (if available) of navigation bars // Parameters: // indexNavigationBar: the index of navigation bar to be toggled Common.toggleNavigationBar=function(indexNavigationBar) { var NavToggle = document.getElementById("NavToggle" + indexNavigationBar); var NavFrame = document.getElementById("NavFrame" + indexNavigationBar); if (!NavFrame || !NavToggle) { return false; } // if shown now if (NavToggle.firstChild.data == Common.NavigationBarHide) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) ) { NavChild.style.display = 'none'; } if ( $(NavChild).hasClass( 'NavContent') ) { NavChild.style.display = 'none'; } } NavToggle.firstChild.data = Common.NavigationBarShow; // if hidden now } else if (NavToggle.firstChild.data == Common.NavigationBarShow) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ($(NavChild).hasClass( 'NavPic')) { NavChild.style.display = 'block'; } if ($(NavChild).hasClass( 'NavContent')) { NavChild.style.display = 'block'; } } NavToggle.firstChild.data = Common.NavigationBarHide; } } // adds show/hide-button to navigation bars Common.createNavigationBarToggleButton=function() { var indexNavigationBar = 0; // iterate over all < div >-elements var divs = document.getElementsByTagName("div"); for (var i = 0; NavFrame = divs[i]; i++) { // if found a navigation bar if ($(NavFrame).hasClass( "NavFrame")) { indexNavigationBar++; var NavToggle = document.createElement("a"); NavToggle.className = 'NavToggle'; NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar); NavToggle.setAttribute('href', 'javascript:Common.toggleNavigationBar(' + indexNavigationBar + ');'); var isCollapsed = $(NavFrame).hasClass( "collapsed" ); /* * Check if any children are already hidden. This loop is here for backwards compatibility: * the old way of making NavFrames start out collapsed was to manually add style="display:none" * to all the NavPic/NavContent elements. Since this was bad for accessibility (no way to make * the content visible without JavaScript support), the new recommended way is to add the class * "collapsed" to the NavFrame itself, just like with collapsible tables. */ for (var NavChild = NavFrame.firstChild; NavChild != null && !isCollapsed; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) || $(NavChild).hasClass( 'NavContent' ) ) { if ( NavChild.style.display == 'none' ) { isCollapsed = true; } } } if (isCollapsed) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) || $(NavChild).hasClass( 'NavContent' ) ) { NavChild.style.display = 'none'; } } } var NavToggleText = document.createTextNode(isCollapsed ? Common.NavigationBarShow : Common.NavigationBarHide); NavToggle.appendChild(NavToggleText); // Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked) for(var j=0; j < NavFrame.childNodes.length; j++) { if ($(NavFrame.childNodes[j]).hasClass( "NavHead")) { $(NavFrame.childNodes[j]).children('a.NavToggle#NavToggle' + indexNavigationBar).each(function(i,element){ $(element).remove(); }); NavFrame.childNodes[j].appendChild(NavToggle); } } NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar); } } } $(Common.createNavigationBarToggleButton ); // Wyszukiwanie Google na stronach podręczników Common.googleSearchInitialized = false; Common.insertGoogleSearch=function() { if ( mw.config.get('wgNamespaceNumber') != 0 || Common.googleSearchInitialized ) { return; } Common.googleSearchInitialized = true; var google = "http://www.google.com/custom?sa=Google+Search&domains=pl.wikibooks.org/wiki/PAGE&sitesearch=pl.wikibooks.org/wiki/PAGE"; var ul = jQuery('#p-tb ul')[0]; if (!ul) { return; } var link = document.createElement('a'); var book = Common.pageInfo.book; if ( book.length == 1 || book.indexOf('++') != -1 || encodeURIComponent(book) != book ) { google = "http://www.google.com/custom?sa=Google+Search&domains=pl.wikibooks.org/wiki/&sitesearch=pl.wikibooks.org/wiki/&q=%22PAGE%22" } link.href = google.replace(/PAGE/g, encodeURIComponent(book)); link.appendChild(document.createTextNode("Szukaj w podręczniku")); var li = document.createElement('li'); li.id = "google-trick-search"; li.appendChild(link); $(ul).children('li#google-trick-search').each(function(i,element){ $(element).remove(); }); ul.insertBefore(li, ul.firstChild); } $(Common.insertGoogleSearch); /*Funkcja do liczenia, czy nastąpiło przepełnienie poziome lub pionowe*/ Common.PobierzSzerokoscPaskaPrzewijania=function(){ var div = $('<div style="width:50px;height:50px;overflow:hidden;position:absolute;top:-200px;left:-200px;"><div style="height:100px;"></div></div>'); $('body').append(div); var w1 = $('div', div).innerWidth(); div.css('overflow-y', 'scroll'); var w2 = $('div', div).innerWidth(); $(div).remove(); return (w1 - w2); } /*Funkcje do obsługi pasków przewijania*/ Common.ScrollBarOverflow=function(){ $('*.mw-overflow-x, *.mw-overflow-y').each(function(i,element_g){ /*start overflow*/ var comp=window.getComputedStyle(element_g, null); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var overflow=comp.getPropertyValue("overflow"); var overflow_x=$(element_g).hasClass('mw-overflow-x'); if(overflow_x){ var overflowX=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); if((overflowX)&&(overflowX=="auto")){ element_g.classList.remove("mw-scrollbar-overflow-x"); const hasHorizontalScrollbar = element_g.scrollWidth > element_g.clientWidth; // true lub false if(hasHorizontalScrollbar){ element_g.classList.add("mw-scrollbar-overflow-x"); } } } var overflow_y=$(element_g).hasClass('mw-overflow-y'); if(overflow_y){ var overflowY=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflowY)&&(overflowY=="auto")){ element_g.classList.remove("mw-scrollbar-overflow-y"); const hasVerticalScrollbar = element_g.scrollHeight > element_g.clientHeight; // true lub false if(hasVerticalScrollbar){ element_g.classList.add("mw-scrollbar-overflow-y"); } } } /*koniec overflow*/ }); } $(function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); $(window).on('scroll', function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); $(window).on('resize', function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); /*Funkcja symulująca właściwości position:sticky, wszędzie tam, gdzie nie można go użyć.*/ Common.StickyXY=function(){ $('*.mw-sticky-x, *.mw-sticky-y').each(function(i,element_g){ var comp=window.getComputedStyle(element_g, null); function FunStickyXY(height,top,bottom,width_box,left_box,right_box){ var pozycje_paskow=new Array(); $(element_g).find('*').each(function(i,element){ var comp=window.getComputedStyle(element, null); var overflow=comp.getPropertyValue("overflow"); var overflow_x=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); var overflow_y=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflow_x=="auto")||(overflow_x=="scroll")||(overflow_y=="auto")||(overflow_y=="scroll")){ pozycje_paskow.push(new Array(element,element.scrollTop,element.scrollLeft)); } }); var height_sticky=0; $('html.client-js.vector-sticky-header-enabled body.skin-vector-search-vue.vector-sticky-header-visible header.vector-sticky-header').each(function(i,el){ var rect_sticky=el.getBoundingClientRect(); height_sticky=parseInt(rect_sticky[height]); }); var StickyXYTopOld=$(element_g).data('sctickyXYOld-top');var StickyXYBottomOld=$(element_g).data('sctickyXYOld-bottom'); if(StickyXYTopOld===undefined){ var topold_war=parseFloat(element_g.style[top]); $(element_g).data('sctickyXYOld-top',((!isNaN(topold_war))?topold_war:0)); } if(StickyXYBottomOld===undefined){ var bottomold_war=parseFloat(element_g.style[bottom]); $(element_g).data('sctickyXYOld-bottom',((!isNaN(bottomold_war))?bottomold_war:0)); } var topold=$(element_g).data('sctickyXYOld-top')+height_sticky+5; var margintop=parseFloat(comp.getPropertyValue("margin-"+top)); margintop=((!isNaN(margintop))?margintop:0); var marginbottom=parseFloat(comp.getPropertyValue("margin-"+bottom)); marginbottom=((!isNaN(marginbottom))?marginbottom:0); var przodek_height=undefined; element_g.style[height]="auto"; element_g.style["max"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[top]="auto"; element_g.style[bottom]="auto"; var x_box=undefined; if(width_box!=null){ element_g.style[width_box]="auto"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[left_box]="auto"; element_g.style[right_box]="0"; x_box=((width_box=="width")?"x":"y"); $(element_g).find('.mw-not-overflow-'+x_box+'.mw-overflow-'+x_box).each(function(i,element){ element.style[width_box]="auto"; }); } var parents_node_fun=$(element_g).parents('.mw-parent-node').first(); if((parents_node_fun==null)||(parents_node_fun.length==0)){return;} var width_rodzic=null; var rodzic_element=undefined; var comp_rodz; parents_node_fun.each(function(i,element){ comp_rodz=window.getComputedStyle(element,null); przodek_height=parseFloat(comp_rodz.getPropertyValue([height])); width_rodzic=width_box?parseFloat(comp_rodz.getPropertyValue([width_box])):null; rodzic_element=element; }); var height_box_real=parseFloat(comp.getPropertyValue(height)); var rect_dziecko=element_g.getBoundingClientRect(); var wys=document.documentElement["client"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]; var rect_rodzic; parents_node_fun.each(function(i,element){ rect_rodzic=element.getBoundingClientRect(); }); var top_ab=rect_rodzic[top]; var bottom_ab=(wys-rect_rodzic[bottom]); element_g.style["max"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=((Math.min(przodek_height,wys-((rect_rodzic[top]>=0)?(rect_rodzic[top]):(0))-((bottom_ab>=0)?(bottom_ab):(0)))-(((top_ab<=0)?(topold):(Math.max(0,topold-top_ab)))+((bottom_ab<=0)?($(element_g).data('sctickyXYOld-bottom')+5):(Math.max(0,$(element_g).data('sctickyXYOld-bottom')+5-bottom_ab)))+marginbottom+margintop))*(height_box_real/rect_dziecko[height]))+"px"; element_g.style[height]=(element_g["client"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))])+"px"; var top_obj=(((top_ab>=0)?0:(-top_ab)))+((top_ab<=0)?(topold):(Math.max(0,topold-top_ab))); element_g.style[top]=top_obj+"px"; element_g.style[bottom]="auto"; if(width_box!=null){ element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; rodzic_element.style.position="static"; rodzic_element.style.overflow="hidden"; var width_box_real=parseFloat(comp.getPropertyValue(width_box)); var rect_dziecko=element_g.getBoundingClientRect(); if(parseInt(width_box_real)>parseInt(rect_dziecko[width_box])){ if(width_box=="width"){ element_g.classList.remove('mw-scrollbar-overflow-x'); }else{ element_g.classList.remove('mw-scrollbar-overflow-y'); } if(rect_dziecko[width_box]>width_rodzic){ if(width_box=="width"){ element_g.classList.add('mw-scrollbar-overflow-x'); }else{ element_g.classList.add('mw-scrollbar-overflow-y'); } } var width_box_real=parseFloat(comp.getPropertyValue(width_box)); var margin_all=parseFloat(comp.getPropertyValue("margin-"+left_box))+parseFloat(comp.getPropertyValue("margin-"+right_box)); margin_all+=parseFloat(comp_rodz.getPropertyValue("padding-"+left_box))+parseFloat(comp_rodz.getPropertyValue("padding-"+right_box)); var dlugosc=(width_rodzic-margin_all); dlugosc=((dlugosc>=0)?dlugosc:0); element_g.style.whiteSpace="nowrap"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width_box]))+"px"; element_g.style[width_box]=width_box_real+"px"; Common.ScrollBarOverflow(); $(element_g).find('.mw-overflow-'+x_box+'.mw-not-overflow-'+x_box+'.mw-scrollbar-overflow-'+x_box).each(function(i,element){ var comp_element=window.getComputedStyle(element, null) element.style.maxWidth=comp_element.getPropertyValue('max-width'); element.style.width=(element.scrollWidth+Common.PobierzSzerokoscPaskaPrzewijania()+parseFloat(comp_element.getPropertyValue('padding-left'))+parseFloat(comp_element.getPropertyValue('padding-right')))+"px"; var x_box_right=((width_box=="width")?"y":"x"); element.classList.remove('mw-scrollbar-overflow-'+x_box_right); }); element_g.style.whiteSpace="normal"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[width_box]="auto"; var rect_dziecko=element_g.getBoundingClientRect(); var width_box_real=parseFloat(comp.getPropertyValue(width_box)); element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width_box]))+"px"; element_g.style[width_box]=width_box_real+"px"; element_g.style[left_box]="0"; element_g.style[right_box]="auto"; rodzic_element.style.position="relative"; }else{ element_g.style.whiteSpace="nowrap"; var szerokosc_box=rect_dziecko[width_box]; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(szerokosc_box)+"px"; element_g.style[width_box]=(szerokosc_box)+"px"; Common.ScrollBarOverflow(); $(element_g).find('.mw-overflow-'+x_box+'.mw-not-overflow-'+x_box+'.mw-scrollbar-overflow-'+x_box).each(function(i,element){ var comp_element=window.getComputedStyle(element, null); element.style.width=(element.scrollWidth+Common.PobierzSzerokoscPaskaPrzewijania()+parseFloat(comp_element.getPropertyValue('padding-left'))+parseFloat(comp_element.getPropertyValue('padding-right')))+"px"; var x_box_right=((width_box=="width")?"y":"x"); element.classList.remove('mw-scrollbar-overflow-'+x_box_right); }); element_g.style.whiteSpace="normal"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[width_box]="auto"; var rect_dziecko=element_g.getBoundingClientRect(); var szerokosc_box=rect_dziecko[width_box]; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(szerokosc_box)+"px"; element_g.style[width_box]=(szerokosc_box)+"px"; var szerokosc=rect_dziecko[width_box]+parseFloat(comp.getPropertyValue("margin-"+left_box))+parseFloat(comp.getPropertyValue("margin-"+right_box)); if(parseInt(szerokosc)>parseInt(width_rodzic)){ element_g.style[right_box]="0"; element_g.style[left_box]="auto"; rodzic_element.style.overflow="visible"; }else{ element_g.style[left_box]="0"; element_g.style[right_box]="auto"; rodzic_element.style.position="relative"; } } } element_g.style[height]="auto"; element_g.style[height]=(element_g["offset"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))])+"px"; Common.ScrollBarOverflow(); for(var i in pozycje_paskow){ pozycje_paskow[i][0].scrollTop=pozycje_paskow[i][1]; pozycje_paskow[i][0].scrollLeft=pozycje_paskow[i][2]; } } element_g.classList.add('mw-sticky-js'); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var visibility=comp.getPropertyValue("visibility"); if(visibility=="hidden"){return;} var position=comp.getPropertyValue("position"); if(position!="absolute"){return;} var sticky_x=$(element_g).hasClass('mw-sticky-x'); var sticky_y=$(element_g).hasClass('mw-sticky-y'); if((sticky_x)&&(!sticky_y)){ FunStickyXY("width","left","right","height","top","bottom"); }else if((!sticky_x)&&(sticky_y)){ FunStickyXY("height","top","bottom","width","left","right"); }else{ FunStickyXY("width","left","right",null); FunStickyXY("height","top","bottom",null); } }); } $(function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); $(window).on('scroll', function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); $(window).on('resize', function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); /*Funkcja do ustawiania maksymalnego rozmiaru dziecka, względem rodzica, przy position:absolute*/ Common.OptimalXY=function(){ $('*.mw-optimal-x, *.mw-optimal-y').each(function(i,element_g){ var comp=window.getComputedStyle(element_g, null); function FunOptimalXY(width,left,right){ var pozycje_paskow=new Array(); $(element_g).find('*').each(function(i,element){ var comp=window.getComputedStyle(element, null); var overflow=comp.getPropertyValue("overflow"); var overflow_x=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); var overflow_y=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflow_x=="auto")||(overflow_x=="scroll")||(overflow_y=="auto")||(overflow_y=="scroll")){ pozycje_paskow.push(new Array(element,element.scrollTop,element.scrollLeft)); } }); var width_rodzic=null; var rodzic_node; var comp_rodz; $(element_g).parents('.mw-parent-node').first().each(function(i,element){ comp_rodz=window.getComputedStyle(element,null); width_rodzic=parseFloat(comp_rodz.getPropertyValue([width])); rodzic_node=element; }); if((width_rodzic!=null)&&(!isNaN(width_rodzic))){ element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; var width_box_real=parseFloat(comp.getPropertyValue(width)); var rect_dziecko=element_g.getBoundingClientRect(); if(width=="width"){ element_g.classList.remove('mw-scrollbar-overflow-x'); }else{ element_g.classList.remove('mw-scrollbar-overflow-y'); } if(parseInt(width_box_real)>parseInt(rect_dziecko[width])){ var rect_dziecko=element_g.getBoundingClientRect(); if(rect_dziecko[width]>width_rodzic){ if(width=="width"){ element_g.classList.add('mw-scrollbar-overflow-x'); }else{ element_g.classList.add('mw-scrollbar-overflow-y'); } } var width_box_real=parseFloat(comp.getPropertyValue(width)); var margin_all=parseFloat(comp.getPropertyValue("margin-"+left))+parseFloat(comp.getPropertyValue("margin-"+right)); margin_all+=parseFloat(comp_rodz.getPropertyValue("padding-"+left))+parseFloat(comp_rodz.getPropertyValue("padding-"+right)); var dlugosc=(width_rodzic-margin_all); dlugosc=((dlugosc>=0)?dlugosc:0); element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width]))+"px"; }else{ element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(rect_dziecko[width])+"px"; } var str=$(element_g).parents('.strona_prawa, .strona_lewa').first(); if(!str.hasClass('strona_start-nawigacja_boksy')){ var rect_dziecko=element_g.getBoundingClientRect(); var szerokosc=rect_dziecko[width]+parseFloat(comp.getPropertyValue("margin-left"))+parseFloat(comp.getPropertyValue("margin-right")); if(parseInt(szerokosc)>parseInt(width_rodzic)){ str.css('position','static'); }else{ str.css('position','relative'); } } } for(var i in pozycje_paskow){ pozycje_paskow[i][0].scrollTop=pozycje_paskow[i][1]; pozycje_paskow[i][0].scrollLeft=pozycje_paskow[i][2]; } }; element_g.classList.add('mw-optimal-js'); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var visibility=comp.getPropertyValue("visibility"); if(visibility=="hidden"){return;} var position=comp.getPropertyValue("position"); if(position!="absolute"){return;} var optimal_x=$(element_g).hasClass('mw-optimal-x'); var optimal_y=$(element_g).hasClass('mw-optimal-y'); if(optimal_x){ FunOptimalXY("width","left","right"); } if(optimal_y){ FunOptimalXY("height","top","bottom"); } }); } $(function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); $(window).on("scroll",function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); $(window).on("resize",function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); /*Uruchamianie dodatkowych funkcji, niż standardowe, w href w linkach rozwijanej tabeli TABLE lub ramki DIV, jeśli ona generuje zwiększenie rozmiarów, aby w rodzicu pojawił się pasek przewijania, z dodatkowymi opcjami generowanej przez arkusz kalkulacyjny CSS*/ Common.RamkiTableIDiv=function(obiekt,id_tabeli_lub_ramki,id_nazwa_a,fun_obiektu){ $(obiekt).each(function(i,element_f){ return new Promise(function(resolve,reject){ var czas=0; function Czekaj(){ if(czas>30000){ reject(); } var collapsebutton=$(element_f).find('a#'+id_nazwa_a+i); if((collapsebutton!==null)&&(collapsebutton.length>0)){ var tabele_lub_ramki=collapsebutton.parents('#'+id_tabeli_lub_ramki+i); if((tabele_lub_ramki===null)||(tabele_lub_ramki.length==0)){reject();} resolve(i); }else{ czas+=100; setTimeout(Czekaj,100); } } Czekaj(); }).then(function(i){ $('*.mw-overflow-x a#'+id_nazwa_a+i+', *.mw-overflow-y a#'+id_nazwa_a+i).each(function(j,element_g){ var href=element_g.getAttribute('href'); if((href!=null)&&(href!="")){ var col="[\\s;\\(\\,]*javascript:"+fun_obiektu.replace(/\./g,"\\.")+"\\s*\\(\\s*"+i+"\\s*\\)[\\s;\\)\\,]*"; var re_frame = new RegExp(col,'g'); var re_javascript=new RegExp("^[\\s;]*javascript:"); if((re_javascript.test(href))&&(re_frame.test(href))){ element_g.setAttribute('href',href.replace(/[;\s]*$/g,"")+';javascript:Common.ScrollBarOverflow();javascript:Common.StickyXY();javascript:Common.OptimalXY()') } } }); }).catch(function(){}); }); }; /*Dla menu rozwijanego tabeli TABLE zdefiniowanej na stronie MediaWiki:Common.js*/ Common.RamkiTableIDiv("table.collapsible",'collapsibleTable','collapseButton','Common.collapseTable'); /*Dla menu rozwijanej ramki DIV zdefiniowanej na stronie MediaWiki:Common.js*/ Common.RamkiTableIDiv("div.NavFrame",'NavFrame','NavToggle','Common.toggleNavigationBar'); /*Koniec dodatkowych funkcji*/ /*Uruchamianie dodatkowych zdarzeń do Common.StickyXY i OptimalXY*/ Common.ZdarzeniaDodatkoweFunkcyjneXY=function(css,fun_zdarz){ var fun_css=$(css); fun_css.on('mouseenter',fun_zdarz); fun_css.on('mouseleave',fun_zdarz); fun_css.on('transitionstart',fun_zdarz); fun_css.on('webkittransitionstart',fun_zdarz); fun_css.on('moztransitionstart',fun_zdarz); fun_css.on('otransitionstart',fun_zdarz); fun_css.on('transitionrun',fun_zdarz); fun_css.on('webkittransitionrun',fun_zdarz); fun_css.on('moztransitionrun',fun_zdarz); fun_css.on('otransitionrun',fun_zdarz); fun_css.on('transitioncancel',fun_zdarz); fun_css.on('webkittransitioncancel',fun_zdarz); fun_css.on('moztransitioncancel',fun_zdarz); fun_css.on('otransitioncancel',fun_zdarz); fun_css.on('transitionend',fun_zdarz); fun_css.on('webkittransitionend',fun_zdarz); fun_css.on('moztransitionend',fun_zdarz); fun_css.on('otransitionend',fun_zdarz); }; Common.ZdarzeniaDodatkoweFunkcyjneXY("*.mw-sticky-x, *.mw-sticky-y",Common.StickyXY); Common.ZdarzeniaDodatkoweFunkcyjneXY('*.mw-optimal-x, *.mw-optimal-y',Common.OptimalXY); /*Koniec dodatkowych zdarzeń*/ /*Program do obsługi szablonu StronaStart i jego pokrewnych książkowych*/ Common.StronaStart=function(){ var elements=$('.strona_start .strona .ciało_zawartości > .menu > .menu_boks'); elements.parent().show(); $('.strona_start').find('.strona_lewa .nawigacja_boksy, .strona_prawa .nawigacja_boksy').each(function(i,element){ $(element).css('visibility',"hidden"); }); $('.strona_start').find('.strona_lewa .nawigacja_spis, .strona_prawa .nawigacja_spis').each(function(i,element){ var czy_visible=$(element).css('visibility'); $(element).css('visibility',"visible"); var str=$(element).parents('.strona_prawa, .strona_lewa').first(); str.css('position','relative'); str.addClass('strona_start-nawigacja_spis'); str.removeClass('strona_start-nawigacja_boksy'); if(czy_visible=="hidden"){ $(Common.ScrollBarOverflow); $(Common.StickyXY); } }); function StronaStartFun(){ var id=this; $(id).parents('.strona_start').first().find('.strona .ciało_zawartości > .menu > .menu_boks').children().each(function(i,element){ var display=$(element).css('display'); if(display=="none"){ $(element).css('display',"block"); }else{ $(element).css('display',"none"); } }); $(id).parents('.strona_start').first().find('.strona_lewa, .strona_prawa').children().each(function(i,element){ var visibility=window.getComputedStyle(element, null).getPropertyValue('visibility'); if(visibility=="hidden"){ $(element).css('visibility',"visible"); var str=$(element).parents('.strona_prawa, .strona_lewa').first(); if($(element).hasClass('nawigacja_boksy')){ str.css('position','static'); str.addClass('strona_start-nawigacja_boksy'); str.removeClass('strona_start-nawigacja_spis'); $(Common.ScrollBarOverflow); $(Common.OptimalXY); }else if($(element).hasClass('nawigacja_spis')){ str.css('position','relative'); str.addClass('strona_start-nawigacja_spis'); str.removeClass('strona_start-nawigacja_boksy'); $(Common.ScrollBarOverflow); $(Common.StickyXY); } }else{ $(element).css('visibility',"hidden"); } }); } elements.on('click',StronaStartFun); } $(Common.StronaStart); q5wzvlxg7ix1d0igqmko0yuvfs3hnlq 437131 437130 2022-08-07T12:27:36Z Persino 2851 javascript text/javascript mw.loader.load( '//pl.wikibooks.org/w/index.php?action=raw&ctype=text/javascript&title=Wikipedysta:Persino/Gadget-StronicowyParser.js', 'text/javascript', true ); /**/ /* Umieszczony tutaj kod JavaScript zostanie załadowany przez każdego użytkownika, podczas każdego ładowania strony. */ // Frame Busting if (top != self) top.location.href = self.location.href; /* * Zmienna Common.pageInfo, jego elementy, instrukcja obsługi: * Common.pageInfo.namespace numer przestrzeni nazw (równe wgNamespaceNumber) * Common.pageInfo.name pełna nazwa strony * Common.pageInfo.title tytuł strony, czyli ostatnia część po '/' albo jest równe pageInfo.name, gdy nigdzie nie występuje slash * Common.pageInfo.book tytuł książki * Common.pageInfo.action akcja taka jaka jest w adresie URL pod "action=", w przypadku normalnego czytania strony, action jest równe "get" * Common.pageInfo.diff null w przypadku, gdy nie porównujemy wersji, w przeciwnym wypadku wartość występującą w adresie URL */ /*Przestrzeń nazw: Common, zdefiniowanym za pomocą tablicy*/ var Common=new Array(); /*Funkcje w przestrzeni nazw Common*/ Common.Naglowek=function(){ /* Skrypt odpowiedzialny za wyświetlanie szablonu Nagłówek [[Szablon:Nagłówek]] */ var hideAll = document.getElementById('mójNagłówekUkryj'); var noFooter = false; var footers = 0; var tags = document.getElementsByTagName('div'); for (var i = 0; i < tags.length; i++) { var el=tags[i].getAttribute("id"); if (el=='mojaStopka') footers++; else if (hideAll && (el=='mójNagłówek')) { tags[i].innerHTML=""; noFooter=true; } } if (noFooter) return; var footer = document.getElementById('mojaStopka'); if ((footer !== null) && (footers==1)) { var bodyContent = document.getElementById('bodyContent'); if (bodyContent !== null) { var s0=document.getElementById('mojaStopka0'); var s1=document.getElementById('mojaStopka1'); if ((s1 !== null) || ((s0 === null) && (bodyContent.innerHTML.length>8000))){ var strona=document.getElementById('strona'); if(strona!==null){ strona.appendChild(footer); }else{ var catlinks=document.getElementById('catlinks'); if(catlinks !== null){ bodyContent.insertBefore(footer,catlinks); }else{ bodyContent.appendChild(footer); } } } } } /* Koniec skryptu odpowiedzialnego za wyświetlanie szablonu Nagłówek [[Szablon:Nagłówek]] */ }; $(Common.Naglowek); /*Informacje o danej stronie*/ Common.PageInfoInit=function(){ var _g = /_/g; this.name = mw.config.get('wgPageName').replace(/_/g, ' '); this.namespace = mw.config.get('wgNamespaceNumber'); var i = this.name.search(/\/[^\/]*$/g); this.title = this.name.slice(i + 1); this.book = this.name.replace(/\/.*/g, ""); if ( document.URL.search("//pl.wikibooks.org/w/index.php") != -1 ) { re = /\&diff=/g; this.diff = re.test(document.URL); re = /\&action=[^\&]*/g; this.action = document.URL.match(re); if ( this.action === null ) { this.action = 'get'; } else { this.action = this.action[0].slice(8, this.action[0].length); } } else { this.diff = null; this.action = 'get'; } } Common.pageInfo = new Common.PageInfoInit(); /** Collapsible tables ********************************************************* * * Description: Allows tables to be collapsed, showing only the header. See * [[en:Wikipedia:NavFrame]]. * Maintainers: [[User:R. Koot]] */ Common.autoCollapse = 2; Common.collapseCaption = "ukryj"; Common.expandCaption = "pokaż"; Common.collapseTable=function( tableIndex ) { var Button = document.getElementById( "collapseButton" + tableIndex ); var Table = document.getElementById( "collapsibleTable" + tableIndex ); if ( !Table || !Button ) { return false; } var Rows = Table.rows; if ( Button.firstChild.data == Common.collapseCaption ) { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = "none"; } Button.firstChild.data = Common.expandCaption; } else { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = Rows[0].style.display; } Button.firstChild.data = Common.collapseCaption; } } Common.createCollapseButtons=function() { var tableIndex = 0; var NavigationBoxes = new Object(); var Tables = document.getElementsByTagName( "table" ); for ( var i = 0; i < Tables.length; i++ ) { if ( $(Tables[i]).hasClass( "collapsible" ) ) { /* only add button and increment count if there is a header row to work with */ var HeaderRow = Tables[i].getElementsByTagName( "tr" )[0]; if (!HeaderRow) continue; var Header = HeaderRow.getElementsByTagName( "th" )[0]; if (!Header) continue; NavigationBoxes[ tableIndex ] = Tables[i]; Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex ); var Button = document.createElement( "span" ); var ButtonLink = document.createElement( "a" ); var ButtonText = document.createTextNode( Common.collapseCaption ); Button.style.styleFloat = "right"; Button.style.cssFloat = "right"; Button.style.fontWeight = "normal"; Button.style.textAlign = "right"; Button.style.width = "6em"; ButtonLink.style.color = Header.style.color; ButtonLink.setAttribute( "id", "collapseButton" + tableIndex ); ButtonLink.setAttribute( "href", "javascript:Common.collapseTable(" + tableIndex + ");" ); ButtonLink.appendChild( ButtonText ); Button.appendChild( document.createTextNode( "[" ) ); Button.appendChild( ButtonLink ); Button.appendChild( document.createTextNode( "]" ) ); $(Header.childNodes[0]).has('a#collapseButton' + tableIndex).each(function(i,element){ $(element).remove(); }); Header.insertBefore( Button, Header.childNodes[0]); tableIndex++; } } for ( var i = 0; i < tableIndex; i++ ) { if ( $(NavigationBoxes[i]).hasClass( "collapsed" ) || ( tableIndex >= Common.autoCollapse && $(NavigationBoxes[i]).hasClass( "Common.autoCollapse" ) ) ) { collapseTable( i ); } else if ( $(NavigationBoxes[i]).hasClass( "innercollapse" ) ) { var element = NavigationBoxes[i]; while (element = element.parentNode) { if ( $(element).hasClass( "outercollapse" ) ) { collapseTable ( i ); break; } } } } } $(Common.createCollapseButtons ); /** Dynamic Navigation Bars (experimental) ************************************* * * Description: See [[Wikipedia:NavFrame]]. * Maintainers: UNMAINTAINED */ // set up the words in your language Common.NavigationBarHide = '[' + Common.collapseCaption + ']'; Common.NavigationBarShow = '[' + Common.expandCaption + ']'; // shows and hides content and picture (if available) of navigation bars // Parameters: // indexNavigationBar: the index of navigation bar to be toggled Common.toggleNavigationBar=function(indexNavigationBar) { var NavToggle = document.getElementById("NavToggle" + indexNavigationBar); var NavFrame = document.getElementById("NavFrame" + indexNavigationBar); if (!NavFrame || !NavToggle) { return false; } // if shown now if (NavToggle.firstChild.data == Common.NavigationBarHide) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) ) { NavChild.style.display = 'none'; } if ( $(NavChild).hasClass( 'NavContent') ) { NavChild.style.display = 'none'; } } NavToggle.firstChild.data = Common.NavigationBarShow; // if hidden now } else if (NavToggle.firstChild.data == Common.NavigationBarShow) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ($(NavChild).hasClass( 'NavPic')) { NavChild.style.display = 'block'; } if ($(NavChild).hasClass( 'NavContent')) { NavChild.style.display = 'block'; } } NavToggle.firstChild.data = Common.NavigationBarHide; } } // adds show/hide-button to navigation bars Common.createNavigationBarToggleButton=function() { var indexNavigationBar = 0; // iterate over all < div >-elements var divs = document.getElementsByTagName("div"); for (var i = 0; NavFrame = divs[i]; i++) { // if found a navigation bar if ($(NavFrame).hasClass( "NavFrame")) { indexNavigationBar++; var NavToggle = document.createElement("a"); NavToggle.className = 'NavToggle'; NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar); NavToggle.setAttribute('href', 'javascript:Common.toggleNavigationBar(' + indexNavigationBar + ');'); var isCollapsed = $(NavFrame).hasClass( "collapsed" ); /* * Check if any children are already hidden. This loop is here for backwards compatibility: * the old way of making NavFrames start out collapsed was to manually add style="display:none" * to all the NavPic/NavContent elements. Since this was bad for accessibility (no way to make * the content visible without JavaScript support), the new recommended way is to add the class * "collapsed" to the NavFrame itself, just like with collapsible tables. */ for (var NavChild = NavFrame.firstChild; NavChild != null && !isCollapsed; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) || $(NavChild).hasClass( 'NavContent' ) ) { if ( NavChild.style.display == 'none' ) { isCollapsed = true; } } } if (isCollapsed) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) || $(NavChild).hasClass( 'NavContent' ) ) { NavChild.style.display = 'none'; } } } var NavToggleText = document.createTextNode(isCollapsed ? Common.NavigationBarShow : Common.NavigationBarHide); NavToggle.appendChild(NavToggleText); // Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked) for(var j=0; j < NavFrame.childNodes.length; j++) { if ($(NavFrame.childNodes[j]).hasClass( "NavHead")) { $(NavFrame.childNodes[j]).children('a.NavToggle#NavToggle' + indexNavigationBar).each(function(i,element){ $(element).remove(); }); NavFrame.childNodes[j].appendChild(NavToggle); } } NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar); } } } $(Common.createNavigationBarToggleButton ); // Wyszukiwanie Google na stronach podręczników Common.googleSearchInitialized = false; Common.insertGoogleSearch=function() { if ( mw.config.get('wgNamespaceNumber') != 0 || Common.googleSearchInitialized ) { return; } Common.googleSearchInitialized = true; var google = "http://www.google.com/custom?sa=Google+Search&domains=pl.wikibooks.org/wiki/PAGE&sitesearch=pl.wikibooks.org/wiki/PAGE"; var ul = jQuery('#p-tb ul')[0]; if (!ul) { return; } var link = document.createElement('a'); var book = Common.pageInfo.book; if ( book.length == 1 || book.indexOf('++') != -1 || encodeURIComponent(book) != book ) { google = "http://www.google.com/custom?sa=Google+Search&domains=pl.wikibooks.org/wiki/&sitesearch=pl.wikibooks.org/wiki/&q=%22PAGE%22" } link.href = google.replace(/PAGE/g, encodeURIComponent(book)); link.appendChild(document.createTextNode("Szukaj w podręczniku")); var li = document.createElement('li'); li.id = "google-trick-search"; li.appendChild(link); $(ul).children('li#google-trick-search').each(function(i,element){ $(element).remove(); }); ul.insertBefore(li, ul.firstChild); } $(Common.insertGoogleSearch); /*Funkcja do liczenia, czy nastąpiło przepełnienie poziome lub pionowe*/ Common.PobierzSzerokoscPaskaPrzewijania=function(){ var div = $('<div style="width:50px;height:50px;overflow:hidden;position:absolute;top:-200px;left:-200px;"><div style="height:100px;"></div></div>'); $('body').append(div); var w1 = $('div', div).innerWidth(); div.css('overflow-y', 'scroll'); var w2 = $('div', div).innerWidth(); $(div).remove(); return (w1 - w2); } /*Funkcje do obsługi pasków przewijania*/ Common.ScrollBarOverflow=function(){ $('*.mw-overflow-x, *.mw-overflow-y').each(function(i,element_g){ /*start overflow*/ var comp=window.getComputedStyle(element_g, null); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var overflow=comp.getPropertyValue("overflow"); var overflow_x=$(element_g).hasClass('mw-overflow-x'); if(overflow_x){ var overflowX=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); if((overflowX)&&(overflowX=="auto")){ element_g.classList.remove("mw-scrollbar-overflow-x"); const hasHorizontalScrollbar = element_g.scrollWidth > element_g.clientWidth; // true lub false if(hasHorizontalScrollbar){ element_g.classList.add("mw-scrollbar-overflow-x"); } } } var overflow_y=$(element_g).hasClass('mw-overflow-y'); if(overflow_y){ var overflowY=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflowY)&&(overflowY=="auto")){ element_g.classList.remove("mw-scrollbar-overflow-y"); const hasVerticalScrollbar = element_g.scrollHeight > element_g.clientHeight; // true lub false if(hasVerticalScrollbar){ element_g.classList.add("mw-scrollbar-overflow-y"); } } } /*koniec overflow*/ }); } $(function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); $(window).on('scroll', function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); $(window).on('resize', function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); /*Funkcja symulująca właściwości position:sticky, wszędzie tam, gdzie nie można go użyć.*/ Common.StickyXY=function(){ $('*.mw-sticky-x, *.mw-sticky-y').each(function(i,element_g){ var comp=window.getComputedStyle(element_g, null); function FunStickyXY(height,top,bottom,width_box,left_box,right_box){ var pozycje_paskow=new Array(); $(element_g).find('*').each(function(i,element){ var comp=window.getComputedStyle(element, null); var overflow=comp.getPropertyValue("overflow"); var overflow_x=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); var overflow_y=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflow_x=="auto")||(overflow_x=="scroll")||(overflow_y=="auto")||(overflow_y=="scroll")){ pozycje_paskow.push(new Array(element,element.scrollTop,element.scrollLeft)); } }); var height_sticky=0; $('html.client-js.vector-sticky-header-enabled body.skin-vector-search-vue.vector-sticky-header-visible header.vector-sticky-header').each(function(i,el){ var rect_sticky=el.getBoundingClientRect(); height_sticky=parseInt(rect_sticky[height]); }); var StickyXYTopOld=$(element_g).data('sctickyXYOld-top');var StickyXYBottomOld=$(element_g).data('sctickyXYOld-bottom'); if(StickyXYTopOld===undefined){ var topold_war=parseFloat(element_g.style[top]); $(element_g).data('sctickyXYOld-top',((!isNaN(topold_war))?topold_war:0)); } if(StickyXYBottomOld===undefined){ var bottomold_war=parseFloat(element_g.style[bottom]); $(element_g).data('sctickyXYOld-bottom',((!isNaN(bottomold_war))?bottomold_war:0)); } var topold=$(element_g).data('sctickyXYOld-top')+height_sticky+5; var margintop=parseFloat(comp.getPropertyValue("margin-"+top)); margintop=((!isNaN(margintop))?margintop:0); var marginbottom=parseFloat(comp.getPropertyValue("margin-"+bottom)); marginbottom=((!isNaN(marginbottom))?marginbottom:0); var przodek_height=undefined; element_g.style[height]="auto"; element_g.style["max"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[top]="auto"; element_g.style[bottom]="auto"; var x_box=undefined; if(width_box!=null){ element_g.style[width_box]="auto"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[left_box]="auto"; element_g.style[right_box]="0"; x_box=((width_box=="width")?"x":"y"); $(element_g).find('.mw-not-overflow-'+x_box+'.mw-overflow-'+x_box).each(function(i,element){ element.style[width_box]="auto"; }); } var parents_node_fun=$(element_g).parents('.mw-parent-node').first(); if((parents_node_fun==null)||(parents_node_fun.length==0)){return;} var width_rodzic=null; var rodzic_element=undefined; var comp_rodz; parents_node_fun.each(function(i,element){ comp_rodz=window.getComputedStyle(element,null); przodek_height=parseFloat(comp_rodz.getPropertyValue([height])); width_rodzic=width_box?parseFloat(comp_rodz.getPropertyValue([width_box])):null; rodzic_element=element; }); var height_box_real=parseFloat(comp.getPropertyValue(height)); var rect_dziecko=element_g.getBoundingClientRect(); var wys=document.documentElement["client"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]; var rect_rodzic; parents_node_fun.each(function(i,element){ rect_rodzic=element.getBoundingClientRect(); }); var top_ab=rect_rodzic[top]; var bottom_ab=(wys-rect_rodzic[bottom]); element_g.style["max"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=((Math.min(przodek_height,wys-((rect_rodzic[top]>=0)?(rect_rodzic[top]):(0))-((bottom_ab>=0)?(bottom_ab):(0)))-(((top_ab<=0)?(topold):(Math.max(0,topold-top_ab)))+((bottom_ab<=0)?($(element_g).data('sctickyXYOld-bottom')+5):(Math.max(0,$(element_g).data('sctickyXYOld-bottom')+5-bottom_ab)))+marginbottom+margintop))*(height_box_real/rect_dziecko[height]))+"px"; element_g.style[height]=(element_g["offset"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))])+"px"; var top_obj=(((top_ab>=0)?0:(-top_ab)))+((top_ab<=0)?(topold):(Math.max(0,topold-top_ab))); element_g.style[top]=top_obj+"px"; element_g.style[bottom]="auto"; if(width_box!=null){ element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; rodzic_element.style.position="static"; rodzic_element.style.overflow="hidden"; var width_box_real=parseFloat(comp.getPropertyValue(width_box)); var rect_dziecko=element_g.getBoundingClientRect(); if(parseInt(width_box_real)>parseInt(rect_dziecko[width_box])){ if(width_box=="width"){ element_g.classList.remove('mw-scrollbar-overflow-x'); }else{ element_g.classList.remove('mw-scrollbar-overflow-y'); } if(rect_dziecko[width_box]>width_rodzic){ if(width_box=="width"){ element_g.classList.add('mw-scrollbar-overflow-x'); }else{ element_g.classList.add('mw-scrollbar-overflow-y'); } } var width_box_real=parseFloat(comp.getPropertyValue(width_box)); var margin_all=parseFloat(comp.getPropertyValue("margin-"+left_box))+parseFloat(comp.getPropertyValue("margin-"+right_box)); margin_all+=parseFloat(comp_rodz.getPropertyValue("padding-"+left_box))+parseFloat(comp_rodz.getPropertyValue("padding-"+right_box)); var dlugosc=(width_rodzic-margin_all); dlugosc=((dlugosc>=0)?dlugosc:0); element_g.style.whiteSpace="nowrap"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width_box]))+"px"; element_g.style[width_box]=width_box_real+"px"; Common.ScrollBarOverflow(); $(element_g).find('.mw-overflow-'+x_box+'.mw-not-overflow-'+x_box+'.mw-scrollbar-overflow-'+x_box).each(function(i,element){ var comp_element=window.getComputedStyle(element, null) element.style.maxWidth=comp_element.getPropertyValue('max-width'); element.style.width=(element.scrollWidth+Common.PobierzSzerokoscPaskaPrzewijania()+parseFloat(comp_element.getPropertyValue('padding-left'))+parseFloat(comp_element.getPropertyValue('padding-right')))+"px"; var x_box_right=((width_box=="width")?"y":"x"); element.classList.remove('mw-scrollbar-overflow-'+x_box_right); }); element_g.style.whiteSpace="normal"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[width_box]="auto"; var rect_dziecko=element_g.getBoundingClientRect(); var width_box_real=parseFloat(comp.getPropertyValue(width_box)); element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width_box]))+"px"; element_g.style[width_box]=width_box_real+"px"; element_g.style[left_box]="0"; element_g.style[right_box]="auto"; rodzic_element.style.position="relative"; }else{ element_g.style.whiteSpace="nowrap"; var szerokosc_box=rect_dziecko[width_box]; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(szerokosc_box)+"px"; element_g.style[width_box]=(szerokosc_box)+"px"; Common.ScrollBarOverflow(); $(element_g).find('.mw-overflow-'+x_box+'.mw-not-overflow-'+x_box+'.mw-scrollbar-overflow-'+x_box).each(function(i,element){ var comp_element=window.getComputedStyle(element, null); element.style.width=(element.scrollWidth+Common.PobierzSzerokoscPaskaPrzewijania()+parseFloat(comp_element.getPropertyValue('padding-left'))+parseFloat(comp_element.getPropertyValue('padding-right')))+"px"; var x_box_right=((width_box=="width")?"y":"x"); element.classList.remove('mw-scrollbar-overflow-'+x_box_right); }); element_g.style.whiteSpace="normal"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[width_box]="auto"; var rect_dziecko=element_g.getBoundingClientRect(); var szerokosc_box=rect_dziecko[width_box]; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(szerokosc_box)+"px"; element_g.style[width_box]=(szerokosc_box)+"px"; var szerokosc=rect_dziecko[width_box]+parseFloat(comp.getPropertyValue("margin-"+left_box))+parseFloat(comp.getPropertyValue("margin-"+right_box)); if(parseInt(szerokosc)>parseInt(width_rodzic)){ element_g.style[right_box]="0"; element_g.style[left_box]="auto"; rodzic_element.style.overflow="visible"; }else{ element_g.style[left_box]="0"; element_g.style[right_box]="auto"; rodzic_element.style.position="relative"; } } } element_g.style[height]="auto"; element_g.style[height]=(element_g["offset"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))])+"px"; Common.ScrollBarOverflow(); for(var i in pozycje_paskow){ pozycje_paskow[i][0].scrollTop=pozycje_paskow[i][1]; pozycje_paskow[i][0].scrollLeft=pozycje_paskow[i][2]; } } element_g.classList.add('mw-sticky-js'); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var visibility=comp.getPropertyValue("visibility"); if(visibility=="hidden"){return;} var position=comp.getPropertyValue("position"); if(position!="absolute"){return;} var sticky_x=$(element_g).hasClass('mw-sticky-x'); var sticky_y=$(element_g).hasClass('mw-sticky-y'); if((sticky_x)&&(!sticky_y)){ FunStickyXY("width","left","right","height","top","bottom"); }else if((!sticky_x)&&(sticky_y)){ FunStickyXY("height","top","bottom","width","left","right"); }else{ FunStickyXY("width","left","right",null); FunStickyXY("height","top","bottom",null); } }); } $(function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); $(window).on('scroll', function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); $(window).on('resize', function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); /*Funkcja do ustawiania maksymalnego rozmiaru dziecka, względem rodzica, przy position:absolute*/ Common.OptimalXY=function(){ $('*.mw-optimal-x, *.mw-optimal-y').each(function(i,element_g){ var comp=window.getComputedStyle(element_g, null); function FunOptimalXY(width,left,right){ var pozycje_paskow=new Array(); $(element_g).find('*').each(function(i,element){ var comp=window.getComputedStyle(element, null); var overflow=comp.getPropertyValue("overflow"); var overflow_x=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); var overflow_y=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflow_x=="auto")||(overflow_x=="scroll")||(overflow_y=="auto")||(overflow_y=="scroll")){ pozycje_paskow.push(new Array(element,element.scrollTop,element.scrollLeft)); } }); var width_rodzic=null; var rodzic_node; var comp_rodz; $(element_g).parents('.mw-parent-node').first().each(function(i,element){ comp_rodz=window.getComputedStyle(element,null); width_rodzic=parseFloat(comp_rodz.getPropertyValue([width])); rodzic_node=element; }); if((width_rodzic!=null)&&(!isNaN(width_rodzic))){ element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; var width_box_real=parseFloat(comp.getPropertyValue(width)); var rect_dziecko=element_g.getBoundingClientRect(); if(width=="width"){ element_g.classList.remove('mw-scrollbar-overflow-x'); }else{ element_g.classList.remove('mw-scrollbar-overflow-y'); } if(parseInt(width_box_real)>parseInt(rect_dziecko[width])){ var rect_dziecko=element_g.getBoundingClientRect(); if(rect_dziecko[width]>width_rodzic){ if(width=="width"){ element_g.classList.add('mw-scrollbar-overflow-x'); }else{ element_g.classList.add('mw-scrollbar-overflow-y'); } } var width_box_real=parseFloat(comp.getPropertyValue(width)); var margin_all=parseFloat(comp.getPropertyValue("margin-"+left))+parseFloat(comp.getPropertyValue("margin-"+right)); margin_all+=parseFloat(comp_rodz.getPropertyValue("padding-"+left))+parseFloat(comp_rodz.getPropertyValue("padding-"+right)); var dlugosc=(width_rodzic-margin_all); dlugosc=((dlugosc>=0)?dlugosc:0); element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width]))+"px"; }else{ element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(rect_dziecko[width])+"px"; } var str=$(element_g).parents('.strona_prawa, .strona_lewa').first(); if(!str.hasClass('strona_start-nawigacja_boksy')){ var rect_dziecko=element_g.getBoundingClientRect(); var szerokosc=rect_dziecko[width]+parseFloat(comp.getPropertyValue("margin-left"))+parseFloat(comp.getPropertyValue("margin-right")); if(parseInt(szerokosc)>parseInt(width_rodzic)){ str.css('position','static'); }else{ str.css('position','relative'); } } } for(var i in pozycje_paskow){ pozycje_paskow[i][0].scrollTop=pozycje_paskow[i][1]; pozycje_paskow[i][0].scrollLeft=pozycje_paskow[i][2]; } }; element_g.classList.add('mw-optimal-js'); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var visibility=comp.getPropertyValue("visibility"); if(visibility=="hidden"){return;} var position=comp.getPropertyValue("position"); if(position!="absolute"){return;} var optimal_x=$(element_g).hasClass('mw-optimal-x'); var optimal_y=$(element_g).hasClass('mw-optimal-y'); if(optimal_x){ FunOptimalXY("width","left","right"); } if(optimal_y){ FunOptimalXY("height","top","bottom"); } }); } $(function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); $(window).on("scroll",function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); $(window).on("resize",function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); /*Uruchamianie dodatkowych funkcji, niż standardowe, w href w linkach rozwijanej tabeli TABLE lub ramki DIV, jeśli ona generuje zwiększenie rozmiarów, aby w rodzicu pojawił się pasek przewijania, z dodatkowymi opcjami generowanej przez arkusz kalkulacyjny CSS*/ Common.RamkiTableIDiv=function(obiekt,id_tabeli_lub_ramki,id_nazwa_a,fun_obiektu){ $(obiekt).each(function(i,element_f){ return new Promise(function(resolve,reject){ var czas=0; function Czekaj(){ if(czas>30000){ reject(); } var collapsebutton=$(element_f).find('a#'+id_nazwa_a+i); if((collapsebutton!==null)&&(collapsebutton.length>0)){ var tabele_lub_ramki=collapsebutton.parents('#'+id_tabeli_lub_ramki+i); if((tabele_lub_ramki===null)||(tabele_lub_ramki.length==0)){reject();} resolve(i); }else{ czas+=100; setTimeout(Czekaj,100); } } Czekaj(); }).then(function(i){ $('*.mw-overflow-x a#'+id_nazwa_a+i+', *.mw-overflow-y a#'+id_nazwa_a+i).each(function(j,element_g){ var href=element_g.getAttribute('href'); if((href!=null)&&(href!="")){ var col="[\\s;\\(\\,]*javascript:"+fun_obiektu.replace(/\./g,"\\.")+"\\s*\\(\\s*"+i+"\\s*\\)[\\s;\\)\\,]*"; var re_frame = new RegExp(col,'g'); var re_javascript=new RegExp("^[\\s;]*javascript:"); if((re_javascript.test(href))&&(re_frame.test(href))){ element_g.setAttribute('href',href.replace(/[;\s]*$/g,"")+';javascript:Common.ScrollBarOverflow();javascript:Common.StickyXY();javascript:Common.OptimalXY()') } } }); }).catch(function(){}); }); }; /*Dla menu rozwijanego tabeli TABLE zdefiniowanej na stronie MediaWiki:Common.js*/ Common.RamkiTableIDiv("table.collapsible",'collapsibleTable','collapseButton','Common.collapseTable'); /*Dla menu rozwijanej ramki DIV zdefiniowanej na stronie MediaWiki:Common.js*/ Common.RamkiTableIDiv("div.NavFrame",'NavFrame','NavToggle','Common.toggleNavigationBar'); /*Koniec dodatkowych funkcji*/ /*Uruchamianie dodatkowych zdarzeń do Common.StickyXY i OptimalXY*/ Common.ZdarzeniaDodatkoweFunkcyjneXY=function(css,fun_zdarz){ var fun_css=$(css); fun_css.on('mouseenter',fun_zdarz); fun_css.on('mouseleave',fun_zdarz); fun_css.on('transitionstart',fun_zdarz); fun_css.on('webkittransitionstart',fun_zdarz); fun_css.on('moztransitionstart',fun_zdarz); fun_css.on('otransitionstart',fun_zdarz); fun_css.on('transitionrun',fun_zdarz); fun_css.on('webkittransitionrun',fun_zdarz); fun_css.on('moztransitionrun',fun_zdarz); fun_css.on('otransitionrun',fun_zdarz); fun_css.on('transitioncancel',fun_zdarz); fun_css.on('webkittransitioncancel',fun_zdarz); fun_css.on('moztransitioncancel',fun_zdarz); fun_css.on('otransitioncancel',fun_zdarz); fun_css.on('transitionend',fun_zdarz); fun_css.on('webkittransitionend',fun_zdarz); fun_css.on('moztransitionend',fun_zdarz); fun_css.on('otransitionend',fun_zdarz); }; Common.ZdarzeniaDodatkoweFunkcyjneXY("*.mw-sticky-x, *.mw-sticky-y",Common.StickyXY); Common.ZdarzeniaDodatkoweFunkcyjneXY('*.mw-optimal-x, *.mw-optimal-y',Common.OptimalXY); /*Koniec dodatkowych zdarzeń*/ /*Program do obsługi szablonu StronaStart i jego pokrewnych książkowych*/ Common.StronaStart=function(){ var elements=$('.strona_start .strona .ciało_zawartości > .menu > .menu_boks'); elements.parent().show(); $('.strona_start').find('.strona_lewa .nawigacja_boksy, .strona_prawa .nawigacja_boksy').each(function(i,element){ $(element).css('visibility',"hidden"); }); $('.strona_start').find('.strona_lewa .nawigacja_spis, .strona_prawa .nawigacja_spis').each(function(i,element){ var czy_visible=$(element).css('visibility'); $(element).css('visibility',"visible"); var str=$(element).parents('.strona_prawa, .strona_lewa').first(); str.css('position','relative'); str.addClass('strona_start-nawigacja_spis'); str.removeClass('strona_start-nawigacja_boksy'); if(czy_visible=="hidden"){ $(Common.ScrollBarOverflow); $(Common.StickyXY); } }); function StronaStartFun(){ var id=this; $(id).parents('.strona_start').first().find('.strona .ciało_zawartości > .menu > .menu_boks').children().each(function(i,element){ var display=$(element).css('display'); if(display=="none"){ $(element).css('display',"block"); }else{ $(element).css('display',"none"); } }); $(id).parents('.strona_start').first().find('.strona_lewa, .strona_prawa').children().each(function(i,element){ var visibility=window.getComputedStyle(element, null).getPropertyValue('visibility'); if(visibility=="hidden"){ $(element).css('visibility',"visible"); var str=$(element).parents('.strona_prawa, .strona_lewa').first(); if($(element).hasClass('nawigacja_boksy')){ str.css('position','static'); str.addClass('strona_start-nawigacja_boksy'); str.removeClass('strona_start-nawigacja_spis'); $(Common.ScrollBarOverflow); $(Common.OptimalXY); }else if($(element).hasClass('nawigacja_spis')){ str.css('position','relative'); str.addClass('strona_start-nawigacja_spis'); str.removeClass('strona_start-nawigacja_boksy'); $(Common.ScrollBarOverflow); $(Common.StickyXY); } }else{ $(element).css('visibility',"hidden"); } }); } elements.on('click',StronaStartFun); } $(Common.StronaStart); 20smhzs8ktiun2n6ovyo47m1idpzlt1 437138 437131 2022-08-07T15:36:29Z Persino 2851 javascript text/javascript mw.loader.load( '//pl.wikibooks.org/w/index.php?action=raw&ctype=text/javascript&title=Wikipedysta:Persino/Gadget-StronicowyParser.js', 'text/javascript', true ); /**/ /* Umieszczony tutaj kod JavaScript zostanie załadowany przez każdego użytkownika, podczas każdego ładowania strony. */ // Frame Busting if (top != self) top.location.href = self.location.href; /* * Zmienna Common.pageInfo, jego elementy, instrukcja obsługi: * Common.pageInfo.namespace numer przestrzeni nazw (równe wgNamespaceNumber) * Common.pageInfo.name pełna nazwa strony * Common.pageInfo.title tytuł strony, czyli ostatnia część po '/' albo jest równe pageInfo.name, gdy nigdzie nie występuje slash * Common.pageInfo.book tytuł książki * Common.pageInfo.action akcja taka jaka jest w adresie URL pod "action=", w przypadku normalnego czytania strony, action jest równe "get" * Common.pageInfo.diff null w przypadku, gdy nie porównujemy wersji, w przeciwnym wypadku wartość występującą w adresie URL */ /*Przestrzeń nazw: Common, zdefiniowanym za pomocą tablicy*/ var Common=new Array(); /*Funkcje w przestrzeni nazw Common*/ Common.Naglowek=function(){ /* Skrypt odpowiedzialny za wyświetlanie szablonu Nagłówek [[Szablon:Nagłówek]] */ var hideAll = document.getElementById('mójNagłówekUkryj'); var noFooter = false; var footers = 0; var tags = document.getElementsByTagName('div'); for (var i = 0; i < tags.length; i++) { var el=tags[i].getAttribute("id"); if (el=='mojaStopka') footers++; else if (hideAll && (el=='mójNagłówek')) { tags[i].innerHTML=""; noFooter=true; } } if (noFooter) return; var footer = document.getElementById('mojaStopka'); if ((footer !== null) && (footers==1)) { var bodyContent = document.getElementById('bodyContent'); if (bodyContent !== null) { var s0=document.getElementById('mojaStopka0'); var s1=document.getElementById('mojaStopka1'); if ((s1 !== null) || ((s0 === null) && (bodyContent.innerHTML.length>8000))){ var strona=document.getElementById('strona'); if(strona!==null){ strona.appendChild(footer); }else{ var catlinks=document.getElementById('catlinks'); if(catlinks !== null){ bodyContent.insertBefore(footer,catlinks); }else{ bodyContent.appendChild(footer); } } } } } /* Koniec skryptu odpowiedzialnego za wyświetlanie szablonu Nagłówek [[Szablon:Nagłówek]] */ }; $(Common.Naglowek); /*Informacje o danej stronie*/ Common.PageInfoInit=function(){ var _g = /_/g; this.name = mw.config.get('wgPageName').replace(/_/g, ' '); this.namespace = mw.config.get('wgNamespaceNumber'); var i = this.name.search(/\/[^\/]*$/g); this.title = this.name.slice(i + 1); this.book = this.name.replace(/\/.*/g, ""); if ( document.URL.search("//pl.wikibooks.org/w/index.php") != -1 ) { re = /\&diff=/g; this.diff = re.test(document.URL); re = /\&action=[^\&]*/g; this.action = document.URL.match(re); if ( this.action === null ) { this.action = 'get'; } else { this.action = this.action[0].slice(8, this.action[0].length); } } else { this.diff = null; this.action = 'get'; } } Common.pageInfo = new Common.PageInfoInit(); /** Collapsible tables ********************************************************* * * Description: Allows tables to be collapsed, showing only the header. See * [[en:Wikipedia:NavFrame]]. * Maintainers: [[User:R. Koot]] */ Common.autoCollapse = 2; Common.collapseCaption = "ukryj"; Common.expandCaption = "pokaż"; Common.collapseTable=function( tableIndex ) { var Button = document.getElementById( "collapseButton" + tableIndex ); var Table = document.getElementById( "collapsibleTable" + tableIndex ); if ( !Table || !Button ) { return false; } var Rows = Table.rows; if ( Button.firstChild.data == Common.collapseCaption ) { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = "none"; } Button.firstChild.data = Common.expandCaption; } else { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = Rows[0].style.display; } Button.firstChild.data = Common.collapseCaption; } } Common.createCollapseButtons=function() { var tableIndex = 0; var NavigationBoxes = new Object(); var Tables = document.getElementsByTagName( "table" ); for ( var i = 0; i < Tables.length; i++ ) { if ( $(Tables[i]).hasClass( "collapsible" ) ) { /* only add button and increment count if there is a header row to work with */ var HeaderRow = Tables[i].getElementsByTagName( "tr" )[0]; if (!HeaderRow) continue; var Header = HeaderRow.getElementsByTagName( "th" )[0]; if (!Header) continue; NavigationBoxes[ tableIndex ] = Tables[i]; Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex ); var Button = document.createElement( "span" ); var ButtonLink = document.createElement( "a" ); var ButtonText = document.createTextNode( Common.collapseCaption ); Button.style.styleFloat = "right"; Button.style.cssFloat = "right"; Button.style.fontWeight = "normal"; Button.style.textAlign = "right"; Button.style.width = "6em"; ButtonLink.style.color = Header.style.color; ButtonLink.setAttribute( "id", "collapseButton" + tableIndex ); ButtonLink.setAttribute( "href", "javascript:Common.collapseTable(" + tableIndex + ");" ); ButtonLink.appendChild( ButtonText ); Button.appendChild( document.createTextNode( "[" ) ); Button.appendChild( ButtonLink ); Button.appendChild( document.createTextNode( "]" ) ); $(Header.childNodes[0]).has('a#collapseButton' + tableIndex).each(function(i,element){ $(element).remove(); }); Header.insertBefore( Button, Header.childNodes[0]); tableIndex++; } } for ( var i = 0; i < tableIndex; i++ ) { if ( $(NavigationBoxes[i]).hasClass( "collapsed" ) || ( tableIndex >= Common.autoCollapse && $(NavigationBoxes[i]).hasClass( "Common.autoCollapse" ) ) ) { collapseTable( i ); } else if ( $(NavigationBoxes[i]).hasClass( "innercollapse" ) ) { var element = NavigationBoxes[i]; while (element = element.parentNode) { if ( $(element).hasClass( "outercollapse" ) ) { collapseTable ( i ); break; } } } } } $(Common.createCollapseButtons ); /** Dynamic Navigation Bars (experimental) ************************************* * * Description: See [[Wikipedia:NavFrame]]. * Maintainers: UNMAINTAINED */ // set up the words in your language Common.NavigationBarHide = '[' + Common.collapseCaption + ']'; Common.NavigationBarShow = '[' + Common.expandCaption + ']'; // shows and hides content and picture (if available) of navigation bars // Parameters: // indexNavigationBar: the index of navigation bar to be toggled Common.toggleNavigationBar=function(indexNavigationBar) { var NavToggle = document.getElementById("NavToggle" + indexNavigationBar); var NavFrame = document.getElementById("NavFrame" + indexNavigationBar); if (!NavFrame || !NavToggle) { return false; } // if shown now if (NavToggle.firstChild.data == Common.NavigationBarHide) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) ) { NavChild.style.display = 'none'; } if ( $(NavChild).hasClass( 'NavContent') ) { NavChild.style.display = 'none'; } } NavToggle.firstChild.data = Common.NavigationBarShow; // if hidden now } else if (NavToggle.firstChild.data == Common.NavigationBarShow) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ($(NavChild).hasClass( 'NavPic')) { NavChild.style.display = 'block'; } if ($(NavChild).hasClass( 'NavContent')) { NavChild.style.display = 'block'; } } NavToggle.firstChild.data = Common.NavigationBarHide; } } // adds show/hide-button to navigation bars Common.createNavigationBarToggleButton=function() { var indexNavigationBar = 0; // iterate over all < div >-elements var divs = document.getElementsByTagName("div"); for (var i = 0; NavFrame = divs[i]; i++) { // if found a navigation bar if ($(NavFrame).hasClass( "NavFrame")) { indexNavigationBar++; var NavToggle = document.createElement("a"); NavToggle.className = 'NavToggle'; NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar); NavToggle.setAttribute('href', 'javascript:Common.toggleNavigationBar(' + indexNavigationBar + ');'); var isCollapsed = $(NavFrame).hasClass( "collapsed" ); /* * Check if any children are already hidden. This loop is here for backwards compatibility: * the old way of making NavFrames start out collapsed was to manually add style="display:none" * to all the NavPic/NavContent elements. Since this was bad for accessibility (no way to make * the content visible without JavaScript support), the new recommended way is to add the class * "collapsed" to the NavFrame itself, just like with collapsible tables. */ for (var NavChild = NavFrame.firstChild; NavChild != null && !isCollapsed; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) || $(NavChild).hasClass( 'NavContent' ) ) { if ( NavChild.style.display == 'none' ) { isCollapsed = true; } } } if (isCollapsed) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) || $(NavChild).hasClass( 'NavContent' ) ) { NavChild.style.display = 'none'; } } } var NavToggleText = document.createTextNode(isCollapsed ? Common.NavigationBarShow : Common.NavigationBarHide); NavToggle.appendChild(NavToggleText); // Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked) for(var j=0; j < NavFrame.childNodes.length; j++) { if ($(NavFrame.childNodes[j]).hasClass( "NavHead")) { $(NavFrame.childNodes[j]).children('a.NavToggle#NavToggle' + indexNavigationBar).each(function(i,element){ $(element).remove(); }); NavFrame.childNodes[j].appendChild(NavToggle); } } NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar); } } } $(Common.createNavigationBarToggleButton ); // Wyszukiwanie Google na stronach podręczników Common.googleSearchInitialized = false; Common.insertGoogleSearch=function() { if ( mw.config.get('wgNamespaceNumber') != 0 || Common.googleSearchInitialized ) { return; } Common.googleSearchInitialized = true; var google = "http://www.google.com/custom?sa=Google+Search&domains=pl.wikibooks.org/wiki/PAGE&sitesearch=pl.wikibooks.org/wiki/PAGE"; var ul = jQuery('#p-tb ul')[0]; if (!ul) { return; } var link = document.createElement('a'); var book = Common.pageInfo.book; if ( book.length == 1 || book.indexOf('++') != -1 || encodeURIComponent(book) != book ) { google = "http://www.google.com/custom?sa=Google+Search&domains=pl.wikibooks.org/wiki/&sitesearch=pl.wikibooks.org/wiki/&q=%22PAGE%22" } link.href = google.replace(/PAGE/g, encodeURIComponent(book)); link.appendChild(document.createTextNode("Szukaj w podręczniku")); var li = document.createElement('li'); li.id = "google-trick-search"; li.appendChild(link); $(ul).children('li#google-trick-search').each(function(i,element){ $(element).remove(); }); ul.insertBefore(li, ul.firstChild); } $(Common.insertGoogleSearch); /*Funkcja do liczenia, czy nastąpiło przepełnienie poziome lub pionowe*/ Common.PobierzSzerokoscPaskaPrzewijania=function(){ var div = $('<div style="width:50px;height:50px;overflow:hidden;position:absolute;top:-200px;left:-200px;"><div style="height:100px;"></div></div>'); $('body').append(div); var w1 = $('div', div).innerWidth(); div.css('overflow-y', 'scroll'); var w2 = $('div', div).innerWidth(); $(div).remove(); return (w1 - w2); } /*Funkcje do obsługi pasków przewijania*/ Common.ScrollBarOverflow=function(){ $('*.mw-overflow-x, *.mw-overflow-y').each(function(i,element_g){ /*start overflow*/ var comp=window.getComputedStyle(element_g, null); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var overflow=comp.getPropertyValue("overflow"); var overflow_x=$(element_g).hasClass('mw-overflow-x'); if(overflow_x){ var overflowX=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); if((overflowX)&&(overflowX=="auto")){ element_g.classList.remove("mw-scrollbar-overflow-x"); const hasHorizontalScrollbar = element_g.scrollWidth > element_g.clientWidth; // true lub false if(hasHorizontalScrollbar){ element_g.classList.add("mw-scrollbar-overflow-x"); } } } var overflow_y=$(element_g).hasClass('mw-overflow-y'); if(overflow_y){ var overflowY=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflowY)&&(overflowY=="auto")){ element_g.classList.remove("mw-scrollbar-overflow-y"); const hasVerticalScrollbar = element_g.scrollHeight > element_g.clientHeight; // true lub false if(hasVerticalScrollbar){ element_g.classList.add("mw-scrollbar-overflow-y"); } } } /*koniec overflow*/ }); } $(function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); $(window).on('scroll', function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); $(window).on('resize', function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); /*Funkcja symulująca właściwości position:sticky, wszędzie tam, gdzie nie można go użyć.*/ Common.StickyXY=function(){ $('*.mw-sticky-x, *.mw-sticky-y').each(function(i,element_g){ var comp=window.getComputedStyle(element_g, null); function FunStickyXY(height,top,bottom,width_box,left_box,right_box){ var pozycje_paskow=new Array(); $(element_g).find('*').each(function(i,element){ var comp=window.getComputedStyle(element, null); var overflow=comp.getPropertyValue("overflow"); var overflow_x=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); var overflow_y=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflow_x=="auto")||(overflow_x=="scroll")||(overflow_y=="auto")||(overflow_y=="scroll")){ pozycje_paskow.push(new Array(element,element.scrollTop,element.scrollLeft)); } }); var height_sticky=0; $('html.client-js.vector-sticky-header-enabled body.skin-vector-search-vue.vector-sticky-header-visible header.vector-sticky-header').each(function(i,el){ var rect_sticky=el.getBoundingClientRect(); height_sticky=parseInt(rect_sticky[height]); }); var StickyXYTopOld=$(element_g).data('sctickyXYOld-top');var StickyXYBottomOld=$(element_g).data('sctickyXYOld-bottom'); if(StickyXYTopOld===undefined){ var topold_war=parseFloat(element_g.style[top]); $(element_g).data('sctickyXYOld-top',((!isNaN(topold_war))?topold_war:0)); } if(StickyXYBottomOld===undefined){ var bottomold_war=parseFloat(element_g.style[bottom]); $(element_g).data('sctickyXYOld-bottom',((!isNaN(bottomold_war))?bottomold_war:0)); } var topold=$(element_g).data('sctickyXYOld-top')+height_sticky+5; var margintop=parseFloat(comp.getPropertyValue("margin-"+top)); margintop=((!isNaN(margintop))?margintop:0); var marginbottom=parseFloat(comp.getPropertyValue("margin-"+bottom)); marginbottom=((!isNaN(marginbottom))?marginbottom:0); var przodek_height=undefined; element_g.style[height]="auto"; element_g.style["max"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[top]="auto"; element_g.style[bottom]="auto"; var x_box=undefined; if(width_box!=null){ element_g.style[width_box]="auto"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[left_box]="auto"; element_g.style[right_box]="0"; x_box=((width_box=="width")?"x":"y"); $(element_g).find('.mw-not-overflow-'+x_box+'.mw-overflow-'+x_box).each(function(i,element){ element.style[width_box]="auto"; }); } var parents_node_fun=$(element_g).parents('.mw-parent-node').first(); if((parents_node_fun==null)||(parents_node_fun.length==0)){return;} var width_rodzic=null; var rodzic_element=undefined; var comp_rodz; parents_node_fun.each(function(i,element){ comp_rodz=window.getComputedStyle(element,null); przodek_height=parseFloat(comp_rodz.getPropertyValue([height])); width_rodzic=width_box?parseFloat(comp_rodz.getPropertyValue([width_box])):null; rodzic_element=element; }); var height_box_real=parseFloat(comp.getPropertyValue(height)); var rect_dziecko=element_g.getBoundingClientRect(); var wys=document.documentElement["client"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]; var rect_rodzic; parents_node_fun.each(function(i,element){ rect_rodzic=element.getBoundingClientRect(); }); var top_ab=rect_rodzic[top]; var bottom_ab=(wys-rect_rodzic[bottom]); element_g.style["max"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=((Math.min(przodek_height,wys-((rect_rodzic[top]>=0)?(rect_rodzic[top]):(0))-((bottom_ab>=0)?(bottom_ab):(0)))-(((top_ab<=0)?(topold):(Math.max(0,topold-top_ab)))+((bottom_ab<=0)?($(element_g).data('sctickyXYOld-bottom')+5):(Math.max(0,$(element_g).data('sctickyXYOld-bottom')+5-bottom_ab)))+marginbottom+margintop))*(height_box_real/rect_dziecko[height]))+"px"; element_g.style[height]=(element_g["offset"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))])+"px"; var top_obj=(((top_ab>=0)?0:(-top_ab)))+((top_ab<=0)?(topold):(Math.max(0,topold-top_ab))); element_g.style[top]=top_obj+"px"; element_g.style[bottom]="auto"; if(width_box!=null){ element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; rodzic_element.style.position="static"; rodzic_element.style.overflow="hidden"; var width_box_real=parseFloat(comp.getPropertyValue(width_box)); var rect_dziecko=element_g.getBoundingClientRect(); if(parseInt(width_box_real)>parseInt(rect_dziecko[width_box])){ if(width_box=="width"){ element_g.classList.remove('mw-scrollbar-overflow-x'); }else{ element_g.classList.remove('mw-scrollbar-overflow-y'); } if(rect_dziecko[width_box]>width_rodzic){ if(width_box=="width"){ element_g.classList.add('mw-scrollbar-overflow-x'); }else{ element_g.classList.add('mw-scrollbar-overflow-y'); } } var width_box_real=parseFloat(comp.getPropertyValue(width_box)); var margin_all=parseFloat(comp.getPropertyValue("margin-"+left_box))+parseFloat(comp.getPropertyValue("margin-"+right_box)); margin_all+=parseFloat(comp_rodz.getPropertyValue("padding-"+left_box))+parseFloat(comp_rodz.getPropertyValue("padding-"+right_box)); var dlugosc=(width_rodzic-margin_all); dlugosc=((dlugosc>=0)?dlugosc:0); element_g.style.whiteSpace="nowrap"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width_box]))+"px"; element_g.style[width_box]=width_box_real+"px"; Common.ScrollBarOverflow(); $(element_g).find('.mw-overflow-'+x_box+'.mw-not-overflow-'+x_box+'.mw-scrollbar-overflow-'+x_box).each(function(i,element){ var comp_element=window.getComputedStyle(element, null) element.style.maxWidth=comp_element.getPropertyValue('max-width'); element.style.width=(element.scrollWidth+Common.PobierzSzerokoscPaskaPrzewijania()+parseFloat(comp_element.getPropertyValue('padding-left'))+parseFloat(comp_element.getPropertyValue('padding-right')))+"px"; var x_box_right=((width_box=="width")?"y":"x"); element.classList.remove('mw-scrollbar-overflow-'+x_box_right); }); element_g.style.whiteSpace="normal"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[width_box]="auto"; var rect_dziecko=element_g.getBoundingClientRect(); var width_box_real=parseFloat(comp.getPropertyValue(width_box)); element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width_box]))+"px"; element_g.style[width_box]=width_box_real+"px"; element_g.style[left_box]="0"; element_g.style[right_box]="auto"; rodzic_element.style.position="relative"; }else{ element_g.style.whiteSpace="nowrap"; var szerokosc_box=rect_dziecko[width_box]; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(szerokosc_box)+"px"; element_g.style[width_box]=(szerokosc_box)+"px"; Common.ScrollBarOverflow(); $(element_g).find('.mw-overflow-'+x_box+'.mw-not-overflow-'+x_box+'.mw-scrollbar-overflow-'+x_box).each(function(i,element){ var comp_element=window.getComputedStyle(element, null); element.style.width=(element.scrollWidth+Common.PobierzSzerokoscPaskaPrzewijania()+parseFloat(comp_element.getPropertyValue('padding-left'))+parseFloat(comp_element.getPropertyValue('padding-right')))+"px"; var x_box_right=((width_box=="width")?"y":"x"); element.classList.remove('mw-scrollbar-overflow-'+x_box_right); }); element_g.style.whiteSpace="normal"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[width_box]="auto"; var rect_dziecko=element_g.getBoundingClientRect(); var szerokosc_box=rect_dziecko[width_box]; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(szerokosc_box)+"px"; element_g.style[width_box]=(szerokosc_box)+"px"; var szerokosc=rect_dziecko[width_box]+parseFloat(comp.getPropertyValue("margin-"+left_box))+parseFloat(comp.getPropertyValue("margin-"+right_box)); if(parseInt(szerokosc)>parseInt(width_rodzic)){ element_g.style[right_box]="0"; element_g.style[left_box]="auto"; rodzic_element.style.overflow="visible"; }else{ element_g.style[left_box]="0"; element_g.style[right_box]="auto"; rodzic_element.style.position="relative"; } } } element_g.style[height]="auto"; element_g.style[height]=(element_g["offset"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))])+"px"; Common.ScrollBarOverflow(); for(var i in pozycje_paskow){ pozycje_paskow[i][0].scrollTop=pozycje_paskow[i][1]; pozycje_paskow[i][0].scrollLeft=pozycje_paskow[i][2]; } } element_g.classList.add('mw-sticky-js'); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var visibility=comp.getPropertyValue("visibility"); if(visibility=="hidden"){return;} var position=comp.getPropertyValue("position"); if(position!="absolute"){return;} var sticky_x=$(element_g).hasClass('mw-sticky-x'); var sticky_y=$(element_g).hasClass('mw-sticky-y'); if((sticky_x)&&(!sticky_y)){ let str=$(element_g).parents('.strona_prawa, .strona_lewa').first(); if(str.hasClass('strona_prawa')){ FunStickyXY("width","left","right","height","top","bottom"); }else if(str.hasClass('strona_lewa')){ FunStickyXY("width","left","right","height","bottom","top"); } }else if((!sticky_x)&&(sticky_y)){ let str=$(element_g).parents('.strona_prawa, .strona_lewa').first(); if(str.hasClass('strona_prawa')){ FunStickyXY("height","top","bottom","width","left","right"); }else if(str.hasClass('strona_lewa')){ FunStickyXY("height","top","bottom","width","right","left"); } }else{ FunStickyXY("width","left","right",null); FunStickyXY("height","top","bottom",null); } }); } $(function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); $(window).on('scroll', function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); $(window).on('resize', function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); /*Funkcja do ustawiania maksymalnego rozmiaru dziecka, względem rodzica, przy position:absolute*/ Common.OptimalXY=function(){ $('*.mw-optimal-x, *.mw-optimal-y').each(function(i,element_g){ var comp=window.getComputedStyle(element_g, null); function FunOptimalXY(width,left,right){ var pozycje_paskow=new Array(); $(element_g).find('*').each(function(i,element){ var comp=window.getComputedStyle(element, null); var overflow=comp.getPropertyValue("overflow"); var overflow_x=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); var overflow_y=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflow_x=="auto")||(overflow_x=="scroll")||(overflow_y=="auto")||(overflow_y=="scroll")){ pozycje_paskow.push(new Array(element,element.scrollTop,element.scrollLeft)); } }); var width_rodzic=null; var rodzic_node; var comp_rodz; $(element_g).parents('.mw-parent-node').first().each(function(i,element){ comp_rodz=window.getComputedStyle(element,null); width_rodzic=parseFloat(comp_rodz.getPropertyValue([width])); rodzic_node=element; }); if((width_rodzic!=null)&&(!isNaN(width_rodzic))){ element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; var width_box_real=parseFloat(comp.getPropertyValue(width)); var rect_dziecko=element_g.getBoundingClientRect(); if(width=="width"){ element_g.classList.remove('mw-scrollbar-overflow-x'); }else{ element_g.classList.remove('mw-scrollbar-overflow-y'); } if(parseInt(width_box_real)>parseInt(rect_dziecko[width])){ var rect_dziecko=element_g.getBoundingClientRect(); if(rect_dziecko[width]>width_rodzic){ if(width=="width"){ element_g.classList.add('mw-scrollbar-overflow-x'); }else{ element_g.classList.add('mw-scrollbar-overflow-y'); } } var width_box_real=parseFloat(comp.getPropertyValue(width)); var margin_all=parseFloat(comp.getPropertyValue("margin-"+left))+parseFloat(comp.getPropertyValue("margin-"+right)); margin_all+=parseFloat(comp_rodz.getPropertyValue("padding-"+left))+parseFloat(comp_rodz.getPropertyValue("padding-"+right)); var dlugosc=(width_rodzic-margin_all); dlugosc=((dlugosc>=0)?dlugosc:0); element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width]))+"px"; }else{ element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(rect_dziecko[width])+"px"; } var str=$(element_g).parents('.strona_prawa, .strona_lewa').first(); if(!str.hasClass('strona_start-nawigacja_boksy')){ var rect_dziecko=element_g.getBoundingClientRect(); var szerokosc=rect_dziecko[width]+parseFloat(comp.getPropertyValue("margin-left"))+parseFloat(comp.getPropertyValue("margin-right")); if(parseInt(szerokosc)>parseInt(width_rodzic)){ str.css('position','static'); }else{ str.css('position','relative'); } } } for(var i in pozycje_paskow){ pozycje_paskow[i][0].scrollTop=pozycje_paskow[i][1]; pozycje_paskow[i][0].scrollLeft=pozycje_paskow[i][2]; } }; element_g.classList.add('mw-optimal-js'); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var visibility=comp.getPropertyValue("visibility"); if(visibility=="hidden"){return;} var position=comp.getPropertyValue("position"); if(position!="absolute"){return;} var optimal_x=$(element_g).hasClass('mw-optimal-x'); var optimal_y=$(element_g).hasClass('mw-optimal-y'); if(optimal_x){ FunOptimalXY("width","left","right"); } if(optimal_y){ FunOptimalXY("height","top","bottom"); } }); } $(function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); $(window).on("scroll",function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); $(window).on("resize",function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); /*Uruchamianie dodatkowych funkcji, niż standardowe, w href w linkach rozwijanej tabeli TABLE lub ramki DIV, jeśli ona generuje zwiększenie rozmiarów, aby w rodzicu pojawił się pasek przewijania, z dodatkowymi opcjami generowanej przez arkusz kalkulacyjny CSS*/ Common.RamkiTableIDiv=function(obiekt,id_tabeli_lub_ramki,id_nazwa_a,fun_obiektu){ $(obiekt).each(function(i,element_f){ return new Promise(function(resolve,reject){ var czas=0; function Czekaj(){ if(czas>30000){ reject(); } var collapsebutton=$(element_f).find('a#'+id_nazwa_a+i); if((collapsebutton!==null)&&(collapsebutton.length>0)){ var tabele_lub_ramki=collapsebutton.parents('#'+id_tabeli_lub_ramki+i); if((tabele_lub_ramki===null)||(tabele_lub_ramki.length==0)){reject();} resolve(i); }else{ czas+=100; setTimeout(Czekaj,100); } } Czekaj(); }).then(function(i){ $('*.mw-overflow-x a#'+id_nazwa_a+i+', *.mw-overflow-y a#'+id_nazwa_a+i).each(function(j,element_g){ var href=element_g.getAttribute('href'); if((href!=null)&&(href!="")){ var col="[\\s;\\(\\,]*javascript:"+fun_obiektu.replace(/\./g,"\\.")+"\\s*\\(\\s*"+i+"\\s*\\)[\\s;\\)\\,]*"; var re_frame = new RegExp(col,'g'); var re_javascript=new RegExp("^[\\s;]*javascript:"); if((re_javascript.test(href))&&(re_frame.test(href))){ element_g.setAttribute('href',href.replace(/[;\s]*$/g,"")+';javascript:Common.ScrollBarOverflow();javascript:Common.StickyXY();javascript:Common.OptimalXY()') } } }); }).catch(function(){}); }); }; /*Dla menu rozwijanego tabeli TABLE zdefiniowanej na stronie MediaWiki:Common.js*/ Common.RamkiTableIDiv("table.collapsible",'collapsibleTable','collapseButton','Common.collapseTable'); /*Dla menu rozwijanej ramki DIV zdefiniowanej na stronie MediaWiki:Common.js*/ Common.RamkiTableIDiv("div.NavFrame",'NavFrame','NavToggle','Common.toggleNavigationBar'); /*Koniec dodatkowych funkcji*/ /*Uruchamianie dodatkowych zdarzeń do Common.StickyXY i OptimalXY*/ Common.ZdarzeniaDodatkoweFunkcyjneXY=function(css,fun_zdarz){ var fun_css=$(css); fun_css.on('mouseenter',fun_zdarz); fun_css.on('mouseleave',fun_zdarz); fun_css.on('transitionstart',fun_zdarz); fun_css.on('webkittransitionstart',fun_zdarz); fun_css.on('moztransitionstart',fun_zdarz); fun_css.on('otransitionstart',fun_zdarz); fun_css.on('transitionrun',fun_zdarz); fun_css.on('webkittransitionrun',fun_zdarz); fun_css.on('moztransitionrun',fun_zdarz); fun_css.on('otransitionrun',fun_zdarz); fun_css.on('transitioncancel',fun_zdarz); fun_css.on('webkittransitioncancel',fun_zdarz); fun_css.on('moztransitioncancel',fun_zdarz); fun_css.on('otransitioncancel',fun_zdarz); fun_css.on('transitionend',fun_zdarz); fun_css.on('webkittransitionend',fun_zdarz); fun_css.on('moztransitionend',fun_zdarz); fun_css.on('otransitionend',fun_zdarz); }; Common.ZdarzeniaDodatkoweFunkcyjneXY("*.mw-sticky-x, *.mw-sticky-y",Common.StickyXY); Common.ZdarzeniaDodatkoweFunkcyjneXY('*.mw-optimal-x, *.mw-optimal-y',Common.OptimalXY); /*Koniec dodatkowych zdarzeń*/ /*Program do obsługi szablonu StronaStart i jego pokrewnych książkowych*/ Common.StronaStart=function(){ var elements=$('.strona_start .strona .ciało_zawartości > .menu > .menu_boks'); elements.parent().show(); $('.strona_start').find('.strona_lewa .nawigacja_boksy, .strona_prawa .nawigacja_boksy').each(function(i,element){ $(element).css('visibility',"hidden"); }); $('.strona_start').find('.strona_lewa .nawigacja_spis, .strona_prawa .nawigacja_spis').each(function(i,element){ var czy_visible=$(element).css('visibility'); $(element).css('visibility',"visible"); var str=$(element).parents('.strona_prawa, .strona_lewa').first(); str.css('position','relative'); str.addClass('strona_start-nawigacja_spis'); str.removeClass('strona_start-nawigacja_boksy'); if(czy_visible=="hidden"){ $(Common.ScrollBarOverflow); $(Common.StickyXY); } }); function StronaStartFun(){ var id=this; $(id).parents('.strona_start').first().find('.strona .ciało_zawartości > .menu > .menu_boks').children().each(function(i,element){ var display=$(element).css('display'); if(display=="none"){ $(element).css('display',"block"); }else{ $(element).css('display',"none"); } }); $(id).parents('.strona_start').first().find('.strona_lewa, .strona_prawa').children().each(function(i,element){ var visibility=window.getComputedStyle(element, null).getPropertyValue('visibility'); if(visibility=="hidden"){ $(element).css('visibility',"visible"); var str=$(element).parents('.strona_prawa, .strona_lewa').first(); if($(element).hasClass('nawigacja_boksy')){ str.css('position','static'); str.addClass('strona_start-nawigacja_boksy'); str.removeClass('strona_start-nawigacja_spis'); $(Common.ScrollBarOverflow); $(Common.OptimalXY); }else if($(element).hasClass('nawigacja_spis')){ str.css('position','relative'); str.addClass('strona_start-nawigacja_spis'); str.removeClass('strona_start-nawigacja_boksy'); $(Common.ScrollBarOverflow); $(Common.StickyXY); } }else{ $(element).css('visibility',"hidden"); } }); } elements.on('click',StronaStartFun); } $(Common.StronaStart); 05wjejvulh600x9oyy8ccs8k9zmedem 437139 437138 2022-08-07T15:37:45Z Persino 2851 javascript text/javascript mw.loader.load( '//pl.wikibooks.org/w/index.php?action=raw&ctype=text/javascript&title=Wikipedysta:Persino/Gadget-StronicowyParser.js', 'text/javascript', true ); /**/ /* Umieszczony tutaj kod JavaScript zostanie załadowany przez każdego użytkownika, podczas każdego ładowania strony. */ // Frame Busting if (top != self) top.location.href = self.location.href; /* * Zmienna Common.pageInfo, jego elementy, instrukcja obsługi: * Common.pageInfo.namespace numer przestrzeni nazw (równe wgNamespaceNumber) * Common.pageInfo.name pełna nazwa strony * Common.pageInfo.title tytuł strony, czyli ostatnia część po '/' albo jest równe pageInfo.name, gdy nigdzie nie występuje slash * Common.pageInfo.book tytuł książki * Common.pageInfo.action akcja taka jaka jest w adresie URL pod "action=", w przypadku normalnego czytania strony, action jest równe "get" * Common.pageInfo.diff null w przypadku, gdy nie porównujemy wersji, w przeciwnym wypadku wartość występującą w adresie URL */ /*Przestrzeń nazw: Common, zdefiniowanym za pomocą tablicy*/ var Common=new Array(); /*Funkcje w przestrzeni nazw Common*/ Common.Naglowek=function(){ /* Skrypt odpowiedzialny za wyświetlanie szablonu Nagłówek [[Szablon:Nagłówek]] */ var hideAll = document.getElementById('mójNagłówekUkryj'); var noFooter = false; var footers = 0; var tags = document.getElementsByTagName('div'); for (var i = 0; i < tags.length; i++) { var el=tags[i].getAttribute("id"); if (el=='mojaStopka') footers++; else if (hideAll && (el=='mójNagłówek')) { tags[i].innerHTML=""; noFooter=true; } } if (noFooter) return; var footer = document.getElementById('mojaStopka'); if ((footer !== null) && (footers==1)) { var bodyContent = document.getElementById('bodyContent'); if (bodyContent !== null) { var s0=document.getElementById('mojaStopka0'); var s1=document.getElementById('mojaStopka1'); if ((s1 !== null) || ((s0 === null) && (bodyContent.innerHTML.length>8000))){ var strona=document.getElementById('strona'); if(strona!==null){ strona.appendChild(footer); }else{ var catlinks=document.getElementById('catlinks'); if(catlinks !== null){ bodyContent.insertBefore(footer,catlinks); }else{ bodyContent.appendChild(footer); } } } } } /* Koniec skryptu odpowiedzialnego za wyświetlanie szablonu Nagłówek [[Szablon:Nagłówek]] */ }; $(Common.Naglowek); /*Informacje o danej stronie*/ Common.PageInfoInit=function(){ var _g = /_/g; this.name = mw.config.get('wgPageName').replace(/_/g, ' '); this.namespace = mw.config.get('wgNamespaceNumber'); var i = this.name.search(/\/[^\/]*$/g); this.title = this.name.slice(i + 1); this.book = this.name.replace(/\/.*/g, ""); if ( document.URL.search("//pl.wikibooks.org/w/index.php") != -1 ) { re = /\&diff=/g; this.diff = re.test(document.URL); re = /\&action=[^\&]*/g; this.action = document.URL.match(re); if ( this.action === null ) { this.action = 'get'; } else { this.action = this.action[0].slice(8, this.action[0].length); } } else { this.diff = null; this.action = 'get'; } } Common.pageInfo = new Common.PageInfoInit(); /** Collapsible tables ********************************************************* * * Description: Allows tables to be collapsed, showing only the header. See * [[en:Wikipedia:NavFrame]]. * Maintainers: [[User:R. Koot]] */ Common.autoCollapse = 2; Common.collapseCaption = "ukryj"; Common.expandCaption = "pokaż"; Common.collapseTable=function( tableIndex ) { var Button = document.getElementById( "collapseButton" + tableIndex ); var Table = document.getElementById( "collapsibleTable" + tableIndex ); if ( !Table || !Button ) { return false; } var Rows = Table.rows; if ( Button.firstChild.data == Common.collapseCaption ) { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = "none"; } Button.firstChild.data = Common.expandCaption; } else { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = Rows[0].style.display; } Button.firstChild.data = Common.collapseCaption; } } Common.createCollapseButtons=function() { var tableIndex = 0; var NavigationBoxes = new Object(); var Tables = document.getElementsByTagName( "table" ); for ( var i = 0; i < Tables.length; i++ ) { if ( $(Tables[i]).hasClass( "collapsible" ) ) { /* only add button and increment count if there is a header row to work with */ var HeaderRow = Tables[i].getElementsByTagName( "tr" )[0]; if (!HeaderRow) continue; var Header = HeaderRow.getElementsByTagName( "th" )[0]; if (!Header) continue; NavigationBoxes[ tableIndex ] = Tables[i]; Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex ); var Button = document.createElement( "span" ); var ButtonLink = document.createElement( "a" ); var ButtonText = document.createTextNode( Common.collapseCaption ); Button.style.styleFloat = "right"; Button.style.cssFloat = "right"; Button.style.fontWeight = "normal"; Button.style.textAlign = "right"; Button.style.width = "6em"; ButtonLink.style.color = Header.style.color; ButtonLink.setAttribute( "id", "collapseButton" + tableIndex ); ButtonLink.setAttribute( "href", "javascript:Common.collapseTable(" + tableIndex + ");" ); ButtonLink.appendChild( ButtonText ); Button.appendChild( document.createTextNode( "[" ) ); Button.appendChild( ButtonLink ); Button.appendChild( document.createTextNode( "]" ) ); $(Header.childNodes[0]).has('a#collapseButton' + tableIndex).each(function(i,element){ $(element).remove(); }); Header.insertBefore( Button, Header.childNodes[0]); tableIndex++; } } for ( var i = 0; i < tableIndex; i++ ) { if ( $(NavigationBoxes[i]).hasClass( "collapsed" ) || ( tableIndex >= Common.autoCollapse && $(NavigationBoxes[i]).hasClass( "Common.autoCollapse" ) ) ) { collapseTable( i ); } else if ( $(NavigationBoxes[i]).hasClass( "innercollapse" ) ) { var element = NavigationBoxes[i]; while (element = element.parentNode) { if ( $(element).hasClass( "outercollapse" ) ) { collapseTable ( i ); break; } } } } } $(Common.createCollapseButtons ); /** Dynamic Navigation Bars (experimental) ************************************* * * Description: See [[Wikipedia:NavFrame]]. * Maintainers: UNMAINTAINED */ // set up the words in your language Common.NavigationBarHide = '[' + Common.collapseCaption + ']'; Common.NavigationBarShow = '[' + Common.expandCaption + ']'; // shows and hides content and picture (if available) of navigation bars // Parameters: // indexNavigationBar: the index of navigation bar to be toggled Common.toggleNavigationBar=function(indexNavigationBar) { var NavToggle = document.getElementById("NavToggle" + indexNavigationBar); var NavFrame = document.getElementById("NavFrame" + indexNavigationBar); if (!NavFrame || !NavToggle) { return false; } // if shown now if (NavToggle.firstChild.data == Common.NavigationBarHide) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) ) { NavChild.style.display = 'none'; } if ( $(NavChild).hasClass( 'NavContent') ) { NavChild.style.display = 'none'; } } NavToggle.firstChild.data = Common.NavigationBarShow; // if hidden now } else if (NavToggle.firstChild.data == Common.NavigationBarShow) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ($(NavChild).hasClass( 'NavPic')) { NavChild.style.display = 'block'; } if ($(NavChild).hasClass( 'NavContent')) { NavChild.style.display = 'block'; } } NavToggle.firstChild.data = Common.NavigationBarHide; } } // adds show/hide-button to navigation bars Common.createNavigationBarToggleButton=function() { var indexNavigationBar = 0; // iterate over all < div >-elements var divs = document.getElementsByTagName("div"); for (var i = 0; NavFrame = divs[i]; i++) { // if found a navigation bar if ($(NavFrame).hasClass( "NavFrame")) { indexNavigationBar++; var NavToggle = document.createElement("a"); NavToggle.className = 'NavToggle'; NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar); NavToggle.setAttribute('href', 'javascript:Common.toggleNavigationBar(' + indexNavigationBar + ');'); var isCollapsed = $(NavFrame).hasClass( "collapsed" ); /* * Check if any children are already hidden. This loop is here for backwards compatibility: * the old way of making NavFrames start out collapsed was to manually add style="display:none" * to all the NavPic/NavContent elements. Since this was bad for accessibility (no way to make * the content visible without JavaScript support), the new recommended way is to add the class * "collapsed" to the NavFrame itself, just like with collapsible tables. */ for (var NavChild = NavFrame.firstChild; NavChild != null && !isCollapsed; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) || $(NavChild).hasClass( 'NavContent' ) ) { if ( NavChild.style.display == 'none' ) { isCollapsed = true; } } } if (isCollapsed) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) || $(NavChild).hasClass( 'NavContent' ) ) { NavChild.style.display = 'none'; } } } var NavToggleText = document.createTextNode(isCollapsed ? Common.NavigationBarShow : Common.NavigationBarHide); NavToggle.appendChild(NavToggleText); // Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked) for(var j=0; j < NavFrame.childNodes.length; j++) { if ($(NavFrame.childNodes[j]).hasClass( "NavHead")) { $(NavFrame.childNodes[j]).children('a.NavToggle#NavToggle' + indexNavigationBar).each(function(i,element){ $(element).remove(); }); NavFrame.childNodes[j].appendChild(NavToggle); } } NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar); } } } $(Common.createNavigationBarToggleButton ); // Wyszukiwanie Google na stronach podręczników Common.googleSearchInitialized = false; Common.insertGoogleSearch=function() { if ( mw.config.get('wgNamespaceNumber') != 0 || Common.googleSearchInitialized ) { return; } Common.googleSearchInitialized = true; var google = "http://www.google.com/custom?sa=Google+Search&domains=pl.wikibooks.org/wiki/PAGE&sitesearch=pl.wikibooks.org/wiki/PAGE"; var ul = jQuery('#p-tb ul')[0]; if (!ul) { return; } var link = document.createElement('a'); var book = Common.pageInfo.book; if ( book.length == 1 || book.indexOf('++') != -1 || encodeURIComponent(book) != book ) { google = "http://www.google.com/custom?sa=Google+Search&domains=pl.wikibooks.org/wiki/&sitesearch=pl.wikibooks.org/wiki/&q=%22PAGE%22" } link.href = google.replace(/PAGE/g, encodeURIComponent(book)); link.appendChild(document.createTextNode("Szukaj w podręczniku")); var li = document.createElement('li'); li.id = "google-trick-search"; li.appendChild(link); $(ul).children('li#google-trick-search').each(function(i,element){ $(element).remove(); }); ul.insertBefore(li, ul.firstChild); } $(Common.insertGoogleSearch); /*Funkcja do liczenia, czy nastąpiło przepełnienie poziome lub pionowe*/ Common.PobierzSzerokoscPaskaPrzewijania=function(){ var div = $('<div style="width:50px;height:50px;overflow:hidden;position:absolute;top:-200px;left:-200px;"><div style="height:100px;"></div></div>'); $('body').append(div); var w1 = $('div', div).innerWidth(); div.css('overflow-y', 'scroll'); var w2 = $('div', div).innerWidth(); $(div).remove(); return (w1 - w2); } /*Funkcje do obsługi pasków przewijania*/ Common.ScrollBarOverflow=function(){ $('*.mw-overflow-x, *.mw-overflow-y').each(function(i,element_g){ /*start overflow*/ var comp=window.getComputedStyle(element_g, null); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var overflow=comp.getPropertyValue("overflow"); var overflow_x=$(element_g).hasClass('mw-overflow-x'); if(overflow_x){ var overflowX=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); if((overflowX)&&(overflowX=="auto")){ element_g.classList.remove("mw-scrollbar-overflow-x"); const hasHorizontalScrollbar = element_g.scrollWidth > element_g.clientWidth; // true lub false if(hasHorizontalScrollbar){ element_g.classList.add("mw-scrollbar-overflow-x"); } } } var overflow_y=$(element_g).hasClass('mw-overflow-y'); if(overflow_y){ var overflowY=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflowY)&&(overflowY=="auto")){ element_g.classList.remove("mw-scrollbar-overflow-y"); const hasVerticalScrollbar = element_g.scrollHeight > element_g.clientHeight; // true lub false if(hasVerticalScrollbar){ element_g.classList.add("mw-scrollbar-overflow-y"); } } } /*koniec overflow*/ }); } $(function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); $(window).on('scroll', function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); $(window).on('resize', function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); /*Funkcja symulująca właściwości position:sticky, wszędzie tam, gdzie nie można go użyć.*/ Common.StickyXY=function(){ $('*.mw-sticky-x, *.mw-sticky-y').each(function(i,element_g){ var comp=window.getComputedStyle(element_g, null); function FunStickyXY(height,top,bottom,width_box,left_box,right_box){ var pozycje_paskow=new Array(); $(element_g).find('*').each(function(i,element){ var comp=window.getComputedStyle(element, null); var overflow=comp.getPropertyValue("overflow"); var overflow_x=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); var overflow_y=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflow_x=="auto")||(overflow_x=="scroll")||(overflow_y=="auto")||(overflow_y=="scroll")){ pozycje_paskow.push(new Array(element,element.scrollTop,element.scrollLeft)); } }); var height_sticky=0; $('html.client-js.vector-sticky-header-enabled body.skin-vector-search-vue.vector-sticky-header-visible header.vector-sticky-header').each(function(i,el){ var rect_sticky=el.getBoundingClientRect(); height_sticky=parseInt(rect_sticky[height]); }); var StickyXYTopOld=$(element_g).data('sctickyXYOld-top');var StickyXYBottomOld=$(element_g).data('sctickyXYOld-bottom'); if(StickyXYTopOld===undefined){ var topold_war=parseFloat(element_g.style[top]); $(element_g).data('sctickyXYOld-top',((!isNaN(topold_war))?topold_war:0)); } if(StickyXYBottomOld===undefined){ var bottomold_war=parseFloat(element_g.style[bottom]); $(element_g).data('sctickyXYOld-bottom',((!isNaN(bottomold_war))?bottomold_war:0)); } var topold=$(element_g).data('sctickyXYOld-top')+height_sticky+5; var margintop=parseFloat(comp.getPropertyValue("margin-"+top)); margintop=((!isNaN(margintop))?margintop:0); var marginbottom=parseFloat(comp.getPropertyValue("margin-"+bottom)); marginbottom=((!isNaN(marginbottom))?marginbottom:0); var przodek_height=undefined; element_g.style[height]="auto"; element_g.style["max"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[top]="auto"; element_g.style[bottom]="auto"; var x_box=undefined; if(width_box!=null){ element_g.style[width_box]="auto"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[left_box]="auto"; element_g.style[right_box]="0"; x_box=((width_box=="width")?"x":"y"); $(element_g).find('.mw-not-overflow-'+x_box+'.mw-overflow-'+x_box).each(function(i,element){ element.style[width_box]="auto"; }); } var parents_node_fun=$(element_g).parents('.mw-parent-node').first(); if((parents_node_fun==null)||(parents_node_fun.length==0)){return;} var width_rodzic=null; var rodzic_element=undefined; var comp_rodz; parents_node_fun.each(function(i,element){ comp_rodz=window.getComputedStyle(element,null); przodek_height=parseFloat(comp_rodz.getPropertyValue([height])); width_rodzic=width_box?parseFloat(comp_rodz.getPropertyValue([width_box])):null; rodzic_element=element; }); var height_box_real=parseFloat(comp.getPropertyValue(height)); var rect_dziecko=element_g.getBoundingClientRect(); var wys=document.documentElement["client"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]; var rect_rodzic; parents_node_fun.each(function(i,element){ rect_rodzic=element.getBoundingClientRect(); }); var top_ab=rect_rodzic[top]; var bottom_ab=(wys-rect_rodzic[bottom]); element_g.style["max"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=((Math.min(przodek_height,wys-((rect_rodzic[top]>=0)?(rect_rodzic[top]):(0))-((bottom_ab>=0)?(bottom_ab):(0)))-(((top_ab<=0)?(topold):(Math.max(0,topold-top_ab)))+((bottom_ab<=0)?($(element_g).data('sctickyXYOld-bottom')+5):(Math.max(0,$(element_g).data('sctickyXYOld-bottom')+5-bottom_ab)))+marginbottom+margintop))*(height_box_real/rect_dziecko[height]))+"px"; element_g.style[height]=(element_g["offset"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))])+"px"; var top_obj=(((top_ab>=0)?0:(-top_ab)))+((top_ab<=0)?(topold):(Math.max(0,topold-top_ab))); element_g.style[top]=top_obj+"px"; element_g.style[bottom]="auto"; if(width_box!=null){ element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; rodzic_element.style.position="static"; rodzic_element.style.overflow="hidden"; var width_box_real=parseFloat(comp.getPropertyValue(width_box)); var rect_dziecko=element_g.getBoundingClientRect(); if(parseInt(width_box_real)>parseInt(rect_dziecko[width_box])){ if(width_box=="width"){ element_g.classList.remove('mw-scrollbar-overflow-x'); }else{ element_g.classList.remove('mw-scrollbar-overflow-y'); } if(rect_dziecko[width_box]>width_rodzic){ if(width_box=="width"){ element_g.classList.add('mw-scrollbar-overflow-x'); }else{ element_g.classList.add('mw-scrollbar-overflow-y'); } } var width_box_real=parseFloat(comp.getPropertyValue(width_box)); var margin_all=parseFloat(comp.getPropertyValue("margin-"+left_box))+parseFloat(comp.getPropertyValue("margin-"+right_box)); margin_all+=parseFloat(comp_rodz.getPropertyValue("padding-"+left_box))+parseFloat(comp_rodz.getPropertyValue("padding-"+right_box)); var dlugosc=(width_rodzic-margin_all); dlugosc=((dlugosc>=0)?dlugosc:0); element_g.style.whiteSpace="nowrap"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width_box]))+"px"; element_g.style[width_box]=width_box_real+"px"; Common.ScrollBarOverflow(); $(element_g).find('.mw-overflow-'+x_box+'.mw-not-overflow-'+x_box+'.mw-scrollbar-overflow-'+x_box).each(function(i,element){ var comp_element=window.getComputedStyle(element, null) element.style.maxWidth=comp_element.getPropertyValue('max-width'); element.style.width=(element.scrollWidth+Common.PobierzSzerokoscPaskaPrzewijania()+parseFloat(comp_element.getPropertyValue('padding-left'))+parseFloat(comp_element.getPropertyValue('padding-right')))+"px"; var x_box_right=((width_box=="width")?"y":"x"); element.classList.remove('mw-scrollbar-overflow-'+x_box_right); }); element_g.style.whiteSpace="normal"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[width_box]="auto"; var rect_dziecko=element_g.getBoundingClientRect(); var width_box_real=parseFloat(comp.getPropertyValue(width_box)); element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width_box]))+"px"; element_g.style[width_box]=width_box_real+"px"; element_g.style[left_box]="0"; element_g.style[right_box]="auto"; rodzic_element.style.position="relative"; }else{ element_g.style.whiteSpace="nowrap"; var szerokosc_box=rect_dziecko[width_box]; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(szerokosc_box)+"px"; element_g.style[width_box]=(szerokosc_box)+"px"; Common.ScrollBarOverflow(); $(element_g).find('.mw-overflow-'+x_box+'.mw-not-overflow-'+x_box+'.mw-scrollbar-overflow-'+x_box).each(function(i,element){ var comp_element=window.getComputedStyle(element, null); element.style.width=(element.scrollWidth+Common.PobierzSzerokoscPaskaPrzewijania()+parseFloat(comp_element.getPropertyValue('padding-left'))+parseFloat(comp_element.getPropertyValue('padding-right')))+"px"; var x_box_right=((width_box=="width")?"y":"x"); element.classList.remove('mw-scrollbar-overflow-'+x_box_right); }); element_g.style.whiteSpace="normal"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[width_box]="auto"; var rect_dziecko=element_g.getBoundingClientRect(); var szerokosc_box=rect_dziecko[width_box]; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(szerokosc_box)+"px"; element_g.style[width_box]=(szerokosc_box)+"px"; var szerokosc=rect_dziecko[width_box]+parseFloat(comp.getPropertyValue("margin-"+left_box))+parseFloat(comp.getPropertyValue("margin-"+right_box)); if(parseInt(szerokosc)>parseInt(width_rodzic)){ element_g.style[right_box]="0"; element_g.style[left_box]="auto"; rodzic_element.style.overflow="visible"; }else{ element_g.style[left_box]="0"; element_g.style[right_box]="auto"; rodzic_element.style.position="relative"; } } } element_g.style[height]="auto"; element_g.style[height]=(element_g["offset"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))])+"px"; Common.ScrollBarOverflow(); for(var i in pozycje_paskow){ pozycje_paskow[i][0].scrollTop=pozycje_paskow[i][1]; pozycje_paskow[i][0].scrollLeft=pozycje_paskow[i][2]; } } element_g.classList.add('mw-sticky-js'); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var visibility=comp.getPropertyValue("visibility"); if(visibility=="hidden"){return;} var position=comp.getPropertyValue("position"); if(position!="absolute"){return;} var sticky_x=$(element_g).hasClass('mw-sticky-x'); var sticky_y=$(element_g).hasClass('mw-sticky-y'); if((sticky_x)&&(!sticky_y)){ var str=$(element_g).parents('.strona_prawa, .strona_lewa').first(); if(str.hasClass('strona_prawa')){ FunStickyXY("width","left","right","height","top","bottom"); }else if(str.hasClass('strona_lewa')){ FunStickyXY("width","left","right","height","bottom","top"); } }else if((!sticky_x)&&(sticky_y)){ var str=$(element_g).parents('.strona_prawa, .strona_lewa').first(); if(str.hasClass('strona_prawa')){ FunStickyXY("height","top","bottom","width","left","right"); }else if(str.hasClass('strona_lewa')){ FunStickyXY("height","top","bottom","width","right","left"); } }else{ FunStickyXY("width","left","right",null); FunStickyXY("height","top","bottom",null); } }); } $(function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); $(window).on('scroll', function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); $(window).on('resize', function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); /*Funkcja do ustawiania maksymalnego rozmiaru dziecka, względem rodzica, przy position:absolute*/ Common.OptimalXY=function(){ $('*.mw-optimal-x, *.mw-optimal-y').each(function(i,element_g){ var comp=window.getComputedStyle(element_g, null); function FunOptimalXY(width,left,right){ var pozycje_paskow=new Array(); $(element_g).find('*').each(function(i,element){ var comp=window.getComputedStyle(element, null); var overflow=comp.getPropertyValue("overflow"); var overflow_x=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); var overflow_y=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflow_x=="auto")||(overflow_x=="scroll")||(overflow_y=="auto")||(overflow_y=="scroll")){ pozycje_paskow.push(new Array(element,element.scrollTop,element.scrollLeft)); } }); var width_rodzic=null; var rodzic_node; var comp_rodz; $(element_g).parents('.mw-parent-node').first().each(function(i,element){ comp_rodz=window.getComputedStyle(element,null); width_rodzic=parseFloat(comp_rodz.getPropertyValue([width])); rodzic_node=element; }); if((width_rodzic!=null)&&(!isNaN(width_rodzic))){ element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; var width_box_real=parseFloat(comp.getPropertyValue(width)); var rect_dziecko=element_g.getBoundingClientRect(); if(width=="width"){ element_g.classList.remove('mw-scrollbar-overflow-x'); }else{ element_g.classList.remove('mw-scrollbar-overflow-y'); } if(parseInt(width_box_real)>parseInt(rect_dziecko[width])){ var rect_dziecko=element_g.getBoundingClientRect(); if(rect_dziecko[width]>width_rodzic){ if(width=="width"){ element_g.classList.add('mw-scrollbar-overflow-x'); }else{ element_g.classList.add('mw-scrollbar-overflow-y'); } } var width_box_real=parseFloat(comp.getPropertyValue(width)); var margin_all=parseFloat(comp.getPropertyValue("margin-"+left))+parseFloat(comp.getPropertyValue("margin-"+right)); margin_all+=parseFloat(comp_rodz.getPropertyValue("padding-"+left))+parseFloat(comp_rodz.getPropertyValue("padding-"+right)); var dlugosc=(width_rodzic-margin_all); dlugosc=((dlugosc>=0)?dlugosc:0); element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width]))+"px"; }else{ element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(rect_dziecko[width])+"px"; } var str=$(element_g).parents('.strona_prawa, .strona_lewa').first(); if(!str.hasClass('strona_start-nawigacja_boksy')){ var rect_dziecko=element_g.getBoundingClientRect(); var szerokosc=rect_dziecko[width]+parseFloat(comp.getPropertyValue("margin-left"))+parseFloat(comp.getPropertyValue("margin-right")); if(parseInt(szerokosc)>parseInt(width_rodzic)){ str.css('position','static'); }else{ str.css('position','relative'); } } } for(var i in pozycje_paskow){ pozycje_paskow[i][0].scrollTop=pozycje_paskow[i][1]; pozycje_paskow[i][0].scrollLeft=pozycje_paskow[i][2]; } }; element_g.classList.add('mw-optimal-js'); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var visibility=comp.getPropertyValue("visibility"); if(visibility=="hidden"){return;} var position=comp.getPropertyValue("position"); if(position!="absolute"){return;} var optimal_x=$(element_g).hasClass('mw-optimal-x'); var optimal_y=$(element_g).hasClass('mw-optimal-y'); if(optimal_x){ FunOptimalXY("width","left","right"); } if(optimal_y){ FunOptimalXY("height","top","bottom"); } }); } $(function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); $(window).on("scroll",function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); $(window).on("resize",function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); /*Uruchamianie dodatkowych funkcji, niż standardowe, w href w linkach rozwijanej tabeli TABLE lub ramki DIV, jeśli ona generuje zwiększenie rozmiarów, aby w rodzicu pojawił się pasek przewijania, z dodatkowymi opcjami generowanej przez arkusz kalkulacyjny CSS*/ Common.RamkiTableIDiv=function(obiekt,id_tabeli_lub_ramki,id_nazwa_a,fun_obiektu){ $(obiekt).each(function(i,element_f){ return new Promise(function(resolve,reject){ var czas=0; function Czekaj(){ if(czas>30000){ reject(); } var collapsebutton=$(element_f).find('a#'+id_nazwa_a+i); if((collapsebutton!==null)&&(collapsebutton.length>0)){ var tabele_lub_ramki=collapsebutton.parents('#'+id_tabeli_lub_ramki+i); if((tabele_lub_ramki===null)||(tabele_lub_ramki.length==0)){reject();} resolve(i); }else{ czas+=100; setTimeout(Czekaj,100); } } Czekaj(); }).then(function(i){ $('*.mw-overflow-x a#'+id_nazwa_a+i+', *.mw-overflow-y a#'+id_nazwa_a+i).each(function(j,element_g){ var href=element_g.getAttribute('href'); if((href!=null)&&(href!="")){ var col="[\\s;\\(\\,]*javascript:"+fun_obiektu.replace(/\./g,"\\.")+"\\s*\\(\\s*"+i+"\\s*\\)[\\s;\\)\\,]*"; var re_frame = new RegExp(col,'g'); var re_javascript=new RegExp("^[\\s;]*javascript:"); if((re_javascript.test(href))&&(re_frame.test(href))){ element_g.setAttribute('href',href.replace(/[;\s]*$/g,"")+';javascript:Common.ScrollBarOverflow();javascript:Common.StickyXY();javascript:Common.OptimalXY()') } } }); }).catch(function(){}); }); }; /*Dla menu rozwijanego tabeli TABLE zdefiniowanej na stronie MediaWiki:Common.js*/ Common.RamkiTableIDiv("table.collapsible",'collapsibleTable','collapseButton','Common.collapseTable'); /*Dla menu rozwijanej ramki DIV zdefiniowanej na stronie MediaWiki:Common.js*/ Common.RamkiTableIDiv("div.NavFrame",'NavFrame','NavToggle','Common.toggleNavigationBar'); /*Koniec dodatkowych funkcji*/ /*Uruchamianie dodatkowych zdarzeń do Common.StickyXY i OptimalXY*/ Common.ZdarzeniaDodatkoweFunkcyjneXY=function(css,fun_zdarz){ var fun_css=$(css); fun_css.on('mouseenter',fun_zdarz); fun_css.on('mouseleave',fun_zdarz); fun_css.on('transitionstart',fun_zdarz); fun_css.on('webkittransitionstart',fun_zdarz); fun_css.on('moztransitionstart',fun_zdarz); fun_css.on('otransitionstart',fun_zdarz); fun_css.on('transitionrun',fun_zdarz); fun_css.on('webkittransitionrun',fun_zdarz); fun_css.on('moztransitionrun',fun_zdarz); fun_css.on('otransitionrun',fun_zdarz); fun_css.on('transitioncancel',fun_zdarz); fun_css.on('webkittransitioncancel',fun_zdarz); fun_css.on('moztransitioncancel',fun_zdarz); fun_css.on('otransitioncancel',fun_zdarz); fun_css.on('transitionend',fun_zdarz); fun_css.on('webkittransitionend',fun_zdarz); fun_css.on('moztransitionend',fun_zdarz); fun_css.on('otransitionend',fun_zdarz); }; Common.ZdarzeniaDodatkoweFunkcyjneXY("*.mw-sticky-x, *.mw-sticky-y",Common.StickyXY); Common.ZdarzeniaDodatkoweFunkcyjneXY('*.mw-optimal-x, *.mw-optimal-y',Common.OptimalXY); /*Koniec dodatkowych zdarzeń*/ /*Program do obsługi szablonu StronaStart i jego pokrewnych książkowych*/ Common.StronaStart=function(){ var elements=$('.strona_start .strona .ciało_zawartości > .menu > .menu_boks'); elements.parent().show(); $('.strona_start').find('.strona_lewa .nawigacja_boksy, .strona_prawa .nawigacja_boksy').each(function(i,element){ $(element).css('visibility',"hidden"); }); $('.strona_start').find('.strona_lewa .nawigacja_spis, .strona_prawa .nawigacja_spis').each(function(i,element){ var czy_visible=$(element).css('visibility'); $(element).css('visibility',"visible"); var str=$(element).parents('.strona_prawa, .strona_lewa').first(); str.css('position','relative'); str.addClass('strona_start-nawigacja_spis'); str.removeClass('strona_start-nawigacja_boksy'); if(czy_visible=="hidden"){ $(Common.ScrollBarOverflow); $(Common.StickyXY); } }); function StronaStartFun(){ var id=this; $(id).parents('.strona_start').first().find('.strona .ciało_zawartości > .menu > .menu_boks').children().each(function(i,element){ var display=$(element).css('display'); if(display=="none"){ $(element).css('display',"block"); }else{ $(element).css('display',"none"); } }); $(id).parents('.strona_start').first().find('.strona_lewa, .strona_prawa').children().each(function(i,element){ var visibility=window.getComputedStyle(element, null).getPropertyValue('visibility'); if(visibility=="hidden"){ $(element).css('visibility',"visible"); var str=$(element).parents('.strona_prawa, .strona_lewa').first(); if($(element).hasClass('nawigacja_boksy')){ str.css('position','static'); str.addClass('strona_start-nawigacja_boksy'); str.removeClass('strona_start-nawigacja_spis'); $(Common.ScrollBarOverflow); $(Common.OptimalXY); }else if($(element).hasClass('nawigacja_spis')){ str.css('position','relative'); str.addClass('strona_start-nawigacja_spis'); str.removeClass('strona_start-nawigacja_boksy'); $(Common.ScrollBarOverflow); $(Common.StickyXY); } }else{ $(element).css('visibility',"hidden"); } }); } elements.on('click',StronaStartFun); } $(Common.StronaStart); 9gupudupr9kxcbja18abv8ixn21kugo 437140 437139 2022-08-07T15:42:10Z Persino 2851 javascript text/javascript mw.loader.load( '//pl.wikibooks.org/w/index.php?action=raw&ctype=text/javascript&title=Wikipedysta:Persino/Gadget-StronicowyParser.js', 'text/javascript', true ); /**/ /* Umieszczony tutaj kod JavaScript zostanie załadowany przez każdego użytkownika, podczas każdego ładowania strony. */ // Frame Busting if (top != self) top.location.href = self.location.href; /* * Zmienna Common.pageInfo, jego elementy, instrukcja obsługi: * Common.pageInfo.namespace numer przestrzeni nazw (równe wgNamespaceNumber) * Common.pageInfo.name pełna nazwa strony * Common.pageInfo.title tytuł strony, czyli ostatnia część po '/' albo jest równe pageInfo.name, gdy nigdzie nie występuje slash * Common.pageInfo.book tytuł książki * Common.pageInfo.action akcja taka jaka jest w adresie URL pod "action=", w przypadku normalnego czytania strony, action jest równe "get" * Common.pageInfo.diff null w przypadku, gdy nie porównujemy wersji, w przeciwnym wypadku wartość występującą w adresie URL */ /*Przestrzeń nazw: Common, zdefiniowanym za pomocą tablicy*/ var Common=new Array(); /*Funkcje w przestrzeni nazw Common*/ Common.Naglowek=function(){ /* Skrypt odpowiedzialny za wyświetlanie szablonu Nagłówek [[Szablon:Nagłówek]] */ var hideAll = document.getElementById('mójNagłówekUkryj'); var noFooter = false; var footers = 0; var tags = document.getElementsByTagName('div'); for (var i = 0; i < tags.length; i++) { var el=tags[i].getAttribute("id"); if (el=='mojaStopka') footers++; else if (hideAll && (el=='mójNagłówek')) { tags[i].innerHTML=""; noFooter=true; } } if (noFooter) return; var footer = document.getElementById('mojaStopka'); if ((footer !== null) && (footers==1)) { var bodyContent = document.getElementById('bodyContent'); if (bodyContent !== null) { var s0=document.getElementById('mojaStopka0'); var s1=document.getElementById('mojaStopka1'); if ((s1 !== null) || ((s0 === null) && (bodyContent.innerHTML.length>8000))){ var strona=document.getElementById('strona'); if(strona!==null){ strona.appendChild(footer); }else{ var catlinks=document.getElementById('catlinks'); if(catlinks !== null){ bodyContent.insertBefore(footer,catlinks); }else{ bodyContent.appendChild(footer); } } } } } /* Koniec skryptu odpowiedzialnego za wyświetlanie szablonu Nagłówek [[Szablon:Nagłówek]] */ }; $(Common.Naglowek); /*Informacje o danej stronie*/ Common.PageInfoInit=function(){ var _g = /_/g; this.name = mw.config.get('wgPageName').replace(/_/g, ' '); this.namespace = mw.config.get('wgNamespaceNumber'); var i = this.name.search(/\/[^\/]*$/g); this.title = this.name.slice(i + 1); this.book = this.name.replace(/\/.*/g, ""); if ( document.URL.search("//pl.wikibooks.org/w/index.php") != -1 ) { re = /\&diff=/g; this.diff = re.test(document.URL); re = /\&action=[^\&]*/g; this.action = document.URL.match(re); if ( this.action === null ) { this.action = 'get'; } else { this.action = this.action[0].slice(8, this.action[0].length); } } else { this.diff = null; this.action = 'get'; } } Common.pageInfo = new Common.PageInfoInit(); /** Collapsible tables ********************************************************* * * Description: Allows tables to be collapsed, showing only the header. See * [[en:Wikipedia:NavFrame]]. * Maintainers: [[User:R. Koot]] */ Common.autoCollapse = 2; Common.collapseCaption = "ukryj"; Common.expandCaption = "pokaż"; Common.collapseTable=function( tableIndex ) { var Button = document.getElementById( "collapseButton" + tableIndex ); var Table = document.getElementById( "collapsibleTable" + tableIndex ); if ( !Table || !Button ) { return false; } var Rows = Table.rows; if ( Button.firstChild.data == Common.collapseCaption ) { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = "none"; } Button.firstChild.data = Common.expandCaption; } else { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = Rows[0].style.display; } Button.firstChild.data = Common.collapseCaption; } } Common.createCollapseButtons=function() { var tableIndex = 0; var NavigationBoxes = new Object(); var Tables = document.getElementsByTagName( "table" ); for ( var i = 0; i < Tables.length; i++ ) { if ( $(Tables[i]).hasClass( "collapsible" ) ) { /* only add button and increment count if there is a header row to work with */ var HeaderRow = Tables[i].getElementsByTagName( "tr" )[0]; if (!HeaderRow) continue; var Header = HeaderRow.getElementsByTagName( "th" )[0]; if (!Header) continue; NavigationBoxes[ tableIndex ] = Tables[i]; Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex ); var Button = document.createElement( "span" ); var ButtonLink = document.createElement( "a" ); var ButtonText = document.createTextNode( Common.collapseCaption ); Button.style.styleFloat = "right"; Button.style.cssFloat = "right"; Button.style.fontWeight = "normal"; Button.style.textAlign = "right"; Button.style.width = "6em"; ButtonLink.style.color = Header.style.color; ButtonLink.setAttribute( "id", "collapseButton" + tableIndex ); ButtonLink.setAttribute( "href", "javascript:Common.collapseTable(" + tableIndex + ");" ); ButtonLink.appendChild( ButtonText ); Button.appendChild( document.createTextNode( "[" ) ); Button.appendChild( ButtonLink ); Button.appendChild( document.createTextNode( "]" ) ); $(Header.childNodes[0]).has('a#collapseButton' + tableIndex).each(function(i,element){ $(element).remove(); }); Header.insertBefore( Button, Header.childNodes[0]); tableIndex++; } } for ( var i = 0; i < tableIndex; i++ ) { if ( $(NavigationBoxes[i]).hasClass( "collapsed" ) || ( tableIndex >= Common.autoCollapse && $(NavigationBoxes[i]).hasClass( "Common.autoCollapse" ) ) ) { collapseTable( i ); } else if ( $(NavigationBoxes[i]).hasClass( "innercollapse" ) ) { var element = NavigationBoxes[i]; while (element = element.parentNode) { if ( $(element).hasClass( "outercollapse" ) ) { collapseTable ( i ); break; } } } } } $(Common.createCollapseButtons ); /** Dynamic Navigation Bars (experimental) ************************************* * * Description: See [[Wikipedia:NavFrame]]. * Maintainers: UNMAINTAINED */ // set up the words in your language Common.NavigationBarHide = '[' + Common.collapseCaption + ']'; Common.NavigationBarShow = '[' + Common.expandCaption + ']'; // shows and hides content and picture (if available) of navigation bars // Parameters: // indexNavigationBar: the index of navigation bar to be toggled Common.toggleNavigationBar=function(indexNavigationBar) { var NavToggle = document.getElementById("NavToggle" + indexNavigationBar); var NavFrame = document.getElementById("NavFrame" + indexNavigationBar); if (!NavFrame || !NavToggle) { return false; } // if shown now if (NavToggle.firstChild.data == Common.NavigationBarHide) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) ) { NavChild.style.display = 'none'; } if ( $(NavChild).hasClass( 'NavContent') ) { NavChild.style.display = 'none'; } } NavToggle.firstChild.data = Common.NavigationBarShow; // if hidden now } else if (NavToggle.firstChild.data == Common.NavigationBarShow) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ($(NavChild).hasClass( 'NavPic')) { NavChild.style.display = 'block'; } if ($(NavChild).hasClass( 'NavContent')) { NavChild.style.display = 'block'; } } NavToggle.firstChild.data = Common.NavigationBarHide; } } // adds show/hide-button to navigation bars Common.createNavigationBarToggleButton=function() { var indexNavigationBar = 0; // iterate over all < div >-elements var divs = document.getElementsByTagName("div"); for (var i = 0; NavFrame = divs[i]; i++) { // if found a navigation bar if ($(NavFrame).hasClass( "NavFrame")) { indexNavigationBar++; var NavToggle = document.createElement("a"); NavToggle.className = 'NavToggle'; NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar); NavToggle.setAttribute('href', 'javascript:Common.toggleNavigationBar(' + indexNavigationBar + ');'); var isCollapsed = $(NavFrame).hasClass( "collapsed" ); /* * Check if any children are already hidden. This loop is here for backwards compatibility: * the old way of making NavFrames start out collapsed was to manually add style="display:none" * to all the NavPic/NavContent elements. Since this was bad for accessibility (no way to make * the content visible without JavaScript support), the new recommended way is to add the class * "collapsed" to the NavFrame itself, just like with collapsible tables. */ for (var NavChild = NavFrame.firstChild; NavChild != null && !isCollapsed; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) || $(NavChild).hasClass( 'NavContent' ) ) { if ( NavChild.style.display == 'none' ) { isCollapsed = true; } } } if (isCollapsed) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) || $(NavChild).hasClass( 'NavContent' ) ) { NavChild.style.display = 'none'; } } } var NavToggleText = document.createTextNode(isCollapsed ? Common.NavigationBarShow : Common.NavigationBarHide); NavToggle.appendChild(NavToggleText); // Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked) for(var j=0; j < NavFrame.childNodes.length; j++) { if ($(NavFrame.childNodes[j]).hasClass( "NavHead")) { $(NavFrame.childNodes[j]).children('a.NavToggle#NavToggle' + indexNavigationBar).each(function(i,element){ $(element).remove(); }); NavFrame.childNodes[j].appendChild(NavToggle); } } NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar); } } } $(Common.createNavigationBarToggleButton ); // Wyszukiwanie Google na stronach podręczników Common.googleSearchInitialized = false; Common.insertGoogleSearch=function() { if ( mw.config.get('wgNamespaceNumber') != 0 || Common.googleSearchInitialized ) { return; } Common.googleSearchInitialized = true; var google = "http://www.google.com/custom?sa=Google+Search&domains=pl.wikibooks.org/wiki/PAGE&sitesearch=pl.wikibooks.org/wiki/PAGE"; var ul = jQuery('#p-tb ul')[0]; if (!ul) { return; } var link = document.createElement('a'); var book = Common.pageInfo.book; if ( book.length == 1 || book.indexOf('++') != -1 || encodeURIComponent(book) != book ) { google = "http://www.google.com/custom?sa=Google+Search&domains=pl.wikibooks.org/wiki/&sitesearch=pl.wikibooks.org/wiki/&q=%22PAGE%22" } link.href = google.replace(/PAGE/g, encodeURIComponent(book)); link.appendChild(document.createTextNode("Szukaj w podręczniku")); var li = document.createElement('li'); li.id = "google-trick-search"; li.appendChild(link); $(ul).children('li#google-trick-search').each(function(i,element){ $(element).remove(); }); ul.insertBefore(li, ul.firstChild); } $(Common.insertGoogleSearch); /*Funkcja do liczenia, czy nastąpiło przepełnienie poziome lub pionowe*/ Common.PobierzSzerokoscPaskaPrzewijania=function(){ var div = $('<div style="width:50px;height:50px;overflow:hidden;position:absolute;top:-200px;left:-200px;"><div style="height:100px;"></div></div>'); $('body').append(div); var w1 = $('div', div).innerWidth(); div.css('overflow-y', 'scroll'); var w2 = $('div', div).innerWidth(); $(div).remove(); return (w1 - w2); } /*Funkcje do obsługi pasków przewijania*/ Common.ScrollBarOverflow=function(){ $('*.mw-overflow-x, *.mw-overflow-y').each(function(i,element_g){ /*start overflow*/ var comp=window.getComputedStyle(element_g, null); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var overflow=comp.getPropertyValue("overflow"); var overflow_x=$(element_g).hasClass('mw-overflow-x'); if(overflow_x){ var overflowX=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); if((overflowX)&&(overflowX=="auto")){ element_g.classList.remove("mw-scrollbar-overflow-x"); const hasHorizontalScrollbar = element_g.scrollWidth > element_g.clientWidth; // true lub false if(hasHorizontalScrollbar){ element_g.classList.add("mw-scrollbar-overflow-x"); } } } var overflow_y=$(element_g).hasClass('mw-overflow-y'); if(overflow_y){ var overflowY=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflowY)&&(overflowY=="auto")){ element_g.classList.remove("mw-scrollbar-overflow-y"); const hasVerticalScrollbar = element_g.scrollHeight > element_g.clientHeight; // true lub false if(hasVerticalScrollbar){ element_g.classList.add("mw-scrollbar-overflow-y"); } } } /*koniec overflow*/ }); } $(function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); $(window).on('scroll', function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); $(window).on('resize', function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); /*Funkcja symulująca właściwości position:sticky, wszędzie tam, gdzie nie można go użyć.*/ Common.StickyXY=function(){ $('*.mw-sticky-x, *.mw-sticky-y').each(function(i,element_g){ var comp=window.getComputedStyle(element_g, null); function FunStickyXY(height,top,bottom,width_box,left_box,right_box){ var pozycje_paskow=new Array(); $(element_g).find('*').each(function(i,element){ var comp=window.getComputedStyle(element, null); var overflow=comp.getPropertyValue("overflow"); var overflow_x=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); var overflow_y=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflow_x=="auto")||(overflow_x=="scroll")||(overflow_y=="auto")||(overflow_y=="scroll")){ pozycje_paskow.push(new Array(element,element.scrollTop,element.scrollLeft)); } }); var height_sticky=0; $('html.client-js.vector-sticky-header-enabled body.skin-vector-search-vue.vector-sticky-header-visible header.vector-sticky-header').each(function(i,el){ var rect_sticky=el.getBoundingClientRect(); height_sticky=parseInt(rect_sticky[height]); }); var StickyXYTopOld=$(element_g).data('sctickyXYOld-top');var StickyXYBottomOld=$(element_g).data('sctickyXYOld-bottom'); if(StickyXYTopOld===undefined){ var topold_war=parseFloat(element_g.style[top]); $(element_g).data('sctickyXYOld-top',((!isNaN(topold_war))?topold_war:0)); } if(StickyXYBottomOld===undefined){ var bottomold_war=parseFloat(element_g.style[bottom]); $(element_g).data('sctickyXYOld-bottom',((!isNaN(bottomold_war))?bottomold_war:0)); } var topold=$(element_g).data('sctickyXYOld-top')+height_sticky+5; var margintop=parseFloat(comp.getPropertyValue("margin-"+top)); margintop=((!isNaN(margintop))?margintop:0); var marginbottom=parseFloat(comp.getPropertyValue("margin-"+bottom)); marginbottom=((!isNaN(marginbottom))?marginbottom:0); var przodek_height=undefined; element_g.style[height]="auto"; element_g.style["max"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[top]="auto"; element_g.style[bottom]="auto"; var x_box=undefined; if(width_box!=null){ element_g.style[width_box]="auto"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[left_box]="auto"; element_g.style[right_box]="0"; x_box=((width_box=="width")?"x":"y"); $(element_g).find('.mw-not-overflow-'+x_box+'.mw-overflow-'+x_box).each(function(i,element){ element.style[width_box]="auto"; }); } var parents_node_fun=$(element_g).parents('.mw-parent-node').first(); if((parents_node_fun==null)||(parents_node_fun.length==0)){return;} var width_rodzic=null; var rodzic_element=undefined; var comp_rodz; parents_node_fun.each(function(i,element){ comp_rodz=window.getComputedStyle(element,null); przodek_height=parseFloat(comp_rodz.getPropertyValue([height])); width_rodzic=width_box?parseFloat(comp_rodz.getPropertyValue([width_box])):null; rodzic_element=element; }); var height_box_real=parseFloat(comp.getPropertyValue(height)); var rect_dziecko=element_g.getBoundingClientRect(); var wys=document.documentElement["client"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]; var rect_rodzic; parents_node_fun.each(function(i,element){ rect_rodzic=element.getBoundingClientRect(); }); var top_ab=rect_rodzic[top]; var bottom_ab=(wys-rect_rodzic[bottom]); element_g.style["max"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=((Math.min(przodek_height,wys-((rect_rodzic[top]>=0)?(rect_rodzic[top]):(0))-((bottom_ab>=0)?(bottom_ab):(0)))-(((top_ab<=0)?(topold):(Math.max(0,topold-top_ab)))+((bottom_ab<=0)?($(element_g).data('sctickyXYOld-bottom')+5):(Math.max(0,$(element_g).data('sctickyXYOld-bottom')+5-bottom_ab)))+marginbottom+margintop))*(height_box_real/rect_dziecko[height]))+"px"; element_g.style[height]=(element_g["offset"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))])+"px"; var top_obj=(((top_ab>=0)?0:(-top_ab)))+((top_ab<=0)?(topold):(Math.max(0,topold-top_ab))); element_g.style[top]=top_obj+"px"; element_g.style[bottom]="auto"; if(width_box!=null){ element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; rodzic_element.style.position="static"; rodzic_element.style.overflow="hidden"; var width_box_real=parseFloat(comp.getPropertyValue(width_box)); var rect_dziecko=element_g.getBoundingClientRect(); if(parseInt(width_box_real)>parseInt(rect_dziecko[width_box])){ if(width_box=="width"){ element_g.classList.remove('mw-scrollbar-overflow-x'); }else{ element_g.classList.remove('mw-scrollbar-overflow-y'); } if(rect_dziecko[width_box]>width_rodzic){ if(width_box=="width"){ element_g.classList.add('mw-scrollbar-overflow-x'); }else{ element_g.classList.add('mw-scrollbar-overflow-y'); } } var width_box_real=parseFloat(comp.getPropertyValue(width_box)); var margin_all=parseFloat(comp.getPropertyValue("margin-"+left_box))+parseFloat(comp.getPropertyValue("margin-"+right_box)); margin_all+=parseFloat(comp_rodz.getPropertyValue("padding-"+left_box))+parseFloat(comp_rodz.getPropertyValue("padding-"+right_box)); var dlugosc=(width_rodzic-margin_all); dlugosc=((dlugosc>=0)?dlugosc:0); element_g.style.whiteSpace="nowrap"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width_box]))+"px"; element_g.style[width_box]=width_box_real+"px"; Common.ScrollBarOverflow(); $(element_g).find('.mw-overflow-'+x_box+'.mw-not-overflow-'+x_box+'.mw-scrollbar-overflow-'+x_box).each(function(i,element){ var comp_element=window.getComputedStyle(element, null) element.style.maxWidth=comp_element.getPropertyValue('max-width'); element.style.width=(element.scrollWidth+Common.PobierzSzerokoscPaskaPrzewijania()+parseFloat(comp_element.getPropertyValue('padding-left'))+parseFloat(comp_element.getPropertyValue('padding-right')))+"px"; var x_box_right=((width_box=="width")?"y":"x"); element.classList.remove('mw-scrollbar-overflow-'+x_box_right); }); element_g.style.whiteSpace="normal"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[width_box]="auto"; var rect_dziecko=element_g.getBoundingClientRect(); var width_box_real=parseFloat(comp.getPropertyValue(width_box)); element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width_box]))+"px"; element_g.style[width_box]=width_box_real+"px"; element_g.style[left_box]="0"; element_g.style[right_box]="auto"; rodzic_element.style.position="relative"; }else{ element_g.style.whiteSpace="nowrap"; var szerokosc_box=rect_dziecko[width_box]; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(szerokosc_box)+"px"; element_g.style[width_box]=(szerokosc_box)+"px"; Common.ScrollBarOverflow(); $(element_g).find('.mw-overflow-'+x_box+'.mw-not-overflow-'+x_box+'.mw-scrollbar-overflow-'+x_box).each(function(i,element){ var comp_element=window.getComputedStyle(element, null); element.style.width=(element.scrollWidth+Common.PobierzSzerokoscPaskaPrzewijania()+parseFloat(comp_element.getPropertyValue('padding-left'))+parseFloat(comp_element.getPropertyValue('padding-right')))+"px"; var x_box_right=((width_box=="width")?"y":"x"); element.classList.remove('mw-scrollbar-overflow-'+x_box_right); }); element_g.style.whiteSpace="normal"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[width_box]="auto"; var rect_dziecko=element_g.getBoundingClientRect(); var szerokosc_box=rect_dziecko[width_box]; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(szerokosc_box)+"px"; element_g.style[width_box]=(szerokosc_box)+"px"; var szerokosc=rect_dziecko[width_box]+parseFloat(comp.getPropertyValue("margin-"+left_box))+parseFloat(comp.getPropertyValue("margin-"+right_box)); if(parseInt(szerokosc)>parseInt(width_rodzic)){ element_g.style[right_box]="0"; element_g.style[left_box]="auto"; rodzic_element.style.overflow="visible"; }else{ element_g.style[left_box]="0"; element_g.style[right_box]="auto"; rodzic_element.style.position="relative"; } } } element_g.style[height]="auto"; element_g.style[height]=(element_g["offset"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))])+"px"; Common.ScrollBarOverflow(); for(var i in pozycje_paskow){ pozycje_paskow[i][0].scrollTop=pozycje_paskow[i][1]; pozycje_paskow[i][0].scrollLeft=pozycje_paskow[i][2]; } } element_g.classList.add('mw-sticky-js'); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var visibility=comp.getPropertyValue("visibility"); if(visibility=="hidden"){return;} var position=comp.getPropertyValue("position"); if(position!="absolute"){return;} var sticky_x=$(element_g).hasClass('mw-sticky-x'); var sticky_y=$(element_g).hasClass('mw-sticky-y'); if((sticky_x)&&(!sticky_y)){ var str=$(element_g).parents('.strona_górna, .strona_dolna').first(); if(str.hasClass('strona_górna')){ FunStickyXY("width","left","right","height","top","bottom"); }else if(str.hasClass('strona_dolna')){ FunStickyXY("width","left","right","height","bottom","top"); } }else if((!sticky_x)&&(sticky_y)){ var str=$(element_g).parents('.strona_prawa, .strona_lewa').first(); if(str.hasClass('strona_prawa')){ FunStickyXY("height","top","bottom","width","left","right"); }else if(str.hasClass('strona_lewa')){ FunStickyXY("height","top","bottom","width","right","left"); } }else{ FunStickyXY("width","left","right",null); FunStickyXY("height","top","bottom",null); } }); } $(function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); $(window).on('scroll', function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); $(window).on('resize', function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); /*Funkcja do ustawiania maksymalnego rozmiaru dziecka, względem rodzica, przy position:absolute*/ Common.OptimalXY=function(){ $('*.mw-optimal-x, *.mw-optimal-y').each(function(i,element_g){ var comp=window.getComputedStyle(element_g, null); function FunOptimalXY(width,left,right){ var pozycje_paskow=new Array(); $(element_g).find('*').each(function(i,element){ var comp=window.getComputedStyle(element, null); var overflow=comp.getPropertyValue("overflow"); var overflow_x=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); var overflow_y=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflow_x=="auto")||(overflow_x=="scroll")||(overflow_y=="auto")||(overflow_y=="scroll")){ pozycje_paskow.push(new Array(element,element.scrollTop,element.scrollLeft)); } }); var width_rodzic=null; var rodzic_node; var comp_rodz; $(element_g).parents('.mw-parent-node').first().each(function(i,element){ comp_rodz=window.getComputedStyle(element,null); width_rodzic=parseFloat(comp_rodz.getPropertyValue([width])); rodzic_node=element; }); if((width_rodzic!=null)&&(!isNaN(width_rodzic))){ element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; var width_box_real=parseFloat(comp.getPropertyValue(width)); var rect_dziecko=element_g.getBoundingClientRect(); if(width=="width"){ element_g.classList.remove('mw-scrollbar-overflow-x'); }else{ element_g.classList.remove('mw-scrollbar-overflow-y'); } if(parseInt(width_box_real)>parseInt(rect_dziecko[width])){ var rect_dziecko=element_g.getBoundingClientRect(); if(rect_dziecko[width]>width_rodzic){ if(width=="width"){ element_g.classList.add('mw-scrollbar-overflow-x'); }else{ element_g.classList.add('mw-scrollbar-overflow-y'); } } var width_box_real=parseFloat(comp.getPropertyValue(width)); var margin_all=parseFloat(comp.getPropertyValue("margin-"+left))+parseFloat(comp.getPropertyValue("margin-"+right)); margin_all+=parseFloat(comp_rodz.getPropertyValue("padding-"+left))+parseFloat(comp_rodz.getPropertyValue("padding-"+right)); var dlugosc=(width_rodzic-margin_all); dlugosc=((dlugosc>=0)?dlugosc:0); element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width]))+"px"; }else{ element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(rect_dziecko[width])+"px"; } var str=$(element_g).parents('.strona_prawa, .strona_lewa').first(); if(!str.hasClass('strona_start-nawigacja_boksy')){ var rect_dziecko=element_g.getBoundingClientRect(); var szerokosc=rect_dziecko[width]+parseFloat(comp.getPropertyValue("margin-left"))+parseFloat(comp.getPropertyValue("margin-right")); if(parseInt(szerokosc)>parseInt(width_rodzic)){ str.css('position','static'); }else{ str.css('position','relative'); } } } for(var i in pozycje_paskow){ pozycje_paskow[i][0].scrollTop=pozycje_paskow[i][1]; pozycje_paskow[i][0].scrollLeft=pozycje_paskow[i][2]; } }; element_g.classList.add('mw-optimal-js'); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var visibility=comp.getPropertyValue("visibility"); if(visibility=="hidden"){return;} var position=comp.getPropertyValue("position"); if(position!="absolute"){return;} var optimal_x=$(element_g).hasClass('mw-optimal-x'); var optimal_y=$(element_g).hasClass('mw-optimal-y'); if(optimal_x){ FunOptimalXY("width","left","right"); } if(optimal_y){ FunOptimalXY("height","top","bottom"); } }); } $(function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); $(window).on("scroll",function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); $(window).on("resize",function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); /*Uruchamianie dodatkowych funkcji, niż standardowe, w href w linkach rozwijanej tabeli TABLE lub ramki DIV, jeśli ona generuje zwiększenie rozmiarów, aby w rodzicu pojawił się pasek przewijania, z dodatkowymi opcjami generowanej przez arkusz kalkulacyjny CSS*/ Common.RamkiTableIDiv=function(obiekt,id_tabeli_lub_ramki,id_nazwa_a,fun_obiektu){ $(obiekt).each(function(i,element_f){ return new Promise(function(resolve,reject){ var czas=0; function Czekaj(){ if(czas>30000){ reject(); } var collapsebutton=$(element_f).find('a#'+id_nazwa_a+i); if((collapsebutton!==null)&&(collapsebutton.length>0)){ var tabele_lub_ramki=collapsebutton.parents('#'+id_tabeli_lub_ramki+i); if((tabele_lub_ramki===null)||(tabele_lub_ramki.length==0)){reject();} resolve(i); }else{ czas+=100; setTimeout(Czekaj,100); } } Czekaj(); }).then(function(i){ $('*.mw-overflow-x a#'+id_nazwa_a+i+', *.mw-overflow-y a#'+id_nazwa_a+i).each(function(j,element_g){ var href=element_g.getAttribute('href'); if((href!=null)&&(href!="")){ var col="[\\s;\\(\\,]*javascript:"+fun_obiektu.replace(/\./g,"\\.")+"\\s*\\(\\s*"+i+"\\s*\\)[\\s;\\)\\,]*"; var re_frame = new RegExp(col,'g'); var re_javascript=new RegExp("^[\\s;]*javascript:"); if((re_javascript.test(href))&&(re_frame.test(href))){ element_g.setAttribute('href',href.replace(/[;\s]*$/g,"")+';javascript:Common.ScrollBarOverflow();javascript:Common.StickyXY();javascript:Common.OptimalXY()') } } }); }).catch(function(){}); }); }; /*Dla menu rozwijanego tabeli TABLE zdefiniowanej na stronie MediaWiki:Common.js*/ Common.RamkiTableIDiv("table.collapsible",'collapsibleTable','collapseButton','Common.collapseTable'); /*Dla menu rozwijanej ramki DIV zdefiniowanej na stronie MediaWiki:Common.js*/ Common.RamkiTableIDiv("div.NavFrame",'NavFrame','NavToggle','Common.toggleNavigationBar'); /*Koniec dodatkowych funkcji*/ /*Uruchamianie dodatkowych zdarzeń do Common.StickyXY i OptimalXY*/ Common.ZdarzeniaDodatkoweFunkcyjneXY=function(css,fun_zdarz){ var fun_css=$(css); fun_css.on('mouseenter',fun_zdarz); fun_css.on('mouseleave',fun_zdarz); fun_css.on('transitionstart',fun_zdarz); fun_css.on('webkittransitionstart',fun_zdarz); fun_css.on('moztransitionstart',fun_zdarz); fun_css.on('otransitionstart',fun_zdarz); fun_css.on('transitionrun',fun_zdarz); fun_css.on('webkittransitionrun',fun_zdarz); fun_css.on('moztransitionrun',fun_zdarz); fun_css.on('otransitionrun',fun_zdarz); fun_css.on('transitioncancel',fun_zdarz); fun_css.on('webkittransitioncancel',fun_zdarz); fun_css.on('moztransitioncancel',fun_zdarz); fun_css.on('otransitioncancel',fun_zdarz); fun_css.on('transitionend',fun_zdarz); fun_css.on('webkittransitionend',fun_zdarz); fun_css.on('moztransitionend',fun_zdarz); fun_css.on('otransitionend',fun_zdarz); }; Common.ZdarzeniaDodatkoweFunkcyjneXY("*.mw-sticky-x, *.mw-sticky-y",Common.StickyXY); Common.ZdarzeniaDodatkoweFunkcyjneXY('*.mw-optimal-x, *.mw-optimal-y',Common.OptimalXY); /*Koniec dodatkowych zdarzeń*/ /*Program do obsługi szablonu StronaStart i jego pokrewnych książkowych*/ Common.StronaStart=function(){ var elements=$('.strona_start .strona .ciało_zawartości > .menu > .menu_boks'); elements.parent().show(); $('.strona_start').find('.strona_lewa .nawigacja_boksy, .strona_prawa .nawigacja_boksy').each(function(i,element){ $(element).css('visibility',"hidden"); }); $('.strona_start').find('.strona_lewa .nawigacja_spis, .strona_prawa .nawigacja_spis').each(function(i,element){ var czy_visible=$(element).css('visibility'); $(element).css('visibility',"visible"); var str=$(element).parents('.strona_prawa, .strona_lewa').first(); str.css('position','relative'); str.addClass('strona_start-nawigacja_spis'); str.removeClass('strona_start-nawigacja_boksy'); if(czy_visible=="hidden"){ $(Common.ScrollBarOverflow); $(Common.StickyXY); } }); function StronaStartFun(){ var id=this; $(id).parents('.strona_start').first().find('.strona .ciało_zawartości > .menu > .menu_boks').children().each(function(i,element){ var display=$(element).css('display'); if(display=="none"){ $(element).css('display',"block"); }else{ $(element).css('display',"none"); } }); $(id).parents('.strona_start').first().find('.strona_lewa, .strona_prawa').children().each(function(i,element){ var visibility=window.getComputedStyle(element, null).getPropertyValue('visibility'); if(visibility=="hidden"){ $(element).css('visibility',"visible"); var str=$(element).parents('.strona_prawa, .strona_lewa').first(); if($(element).hasClass('nawigacja_boksy')){ str.css('position','static'); str.addClass('strona_start-nawigacja_boksy'); str.removeClass('strona_start-nawigacja_spis'); $(Common.ScrollBarOverflow); $(Common.OptimalXY); }else if($(element).hasClass('nawigacja_spis')){ str.css('position','relative'); str.addClass('strona_start-nawigacja_spis'); str.removeClass('strona_start-nawigacja_boksy'); $(Common.ScrollBarOverflow); $(Common.StickyXY); } }else{ $(element).css('visibility',"hidden"); } }); } elements.on('click',StronaStartFun); } $(Common.StronaStart); 8cqn1uqu2oauu3tt0obiqpxwek6bk1s 437141 437140 2022-08-07T15:49:40Z Persino 2851 javascript text/javascript mw.loader.load( '//pl.wikibooks.org/w/index.php?action=raw&ctype=text/javascript&title=Wikipedysta:Persino/Gadget-StronicowyParser.js', 'text/javascript', true ); /**/ /* Umieszczony tutaj kod JavaScript zostanie załadowany przez każdego użytkownika, podczas każdego ładowania strony. */ // Frame Busting if (top != self) top.location.href = self.location.href; /* * Zmienna Common.pageInfo, jego elementy, instrukcja obsługi: * Common.pageInfo.namespace numer przestrzeni nazw (równe wgNamespaceNumber) * Common.pageInfo.name pełna nazwa strony * Common.pageInfo.title tytuł strony, czyli ostatnia część po '/' albo jest równe pageInfo.name, gdy nigdzie nie występuje slash * Common.pageInfo.book tytuł książki * Common.pageInfo.action akcja taka jaka jest w adresie URL pod "action=", w przypadku normalnego czytania strony, action jest równe "get" * Common.pageInfo.diff null w przypadku, gdy nie porównujemy wersji, w przeciwnym wypadku wartość występującą w adresie URL */ /*Przestrzeń nazw: Common, zdefiniowanym za pomocą tablicy*/ var Common=new Array(); /*Funkcje w przestrzeni nazw Common*/ Common.Naglowek=function(){ /* Skrypt odpowiedzialny za wyświetlanie szablonu Nagłówek [[Szablon:Nagłówek]] */ var hideAll = document.getElementById('mójNagłówekUkryj'); var noFooter = false; var footers = 0; var tags = document.getElementsByTagName('div'); for (var i = 0; i < tags.length; i++) { var el=tags[i].getAttribute("id"); if (el=='mojaStopka') footers++; else if (hideAll && (el=='mójNagłówek')) { tags[i].innerHTML=""; noFooter=true; } } if (noFooter) return; var footer = document.getElementById('mojaStopka'); if ((footer !== null) && (footers==1)) { var bodyContent = document.getElementById('bodyContent'); if (bodyContent !== null) { var s0=document.getElementById('mojaStopka0'); var s1=document.getElementById('mojaStopka1'); if ((s1 !== null) || ((s0 === null) && (bodyContent.innerHTML.length>8000))){ var strona=document.getElementById('strona'); if(strona!==null){ strona.appendChild(footer); }else{ var catlinks=document.getElementById('catlinks'); if(catlinks !== null){ bodyContent.insertBefore(footer,catlinks); }else{ bodyContent.appendChild(footer); } } } } } /* Koniec skryptu odpowiedzialnego za wyświetlanie szablonu Nagłówek [[Szablon:Nagłówek]] */ }; $(Common.Naglowek); /*Informacje o danej stronie*/ Common.PageInfoInit=function(){ var _g = /_/g; this.name = mw.config.get('wgPageName').replace(/_/g, ' '); this.namespace = mw.config.get('wgNamespaceNumber'); var i = this.name.search(/\/[^\/]*$/g); this.title = this.name.slice(i + 1); this.book = this.name.replace(/\/.*/g, ""); if ( document.URL.search("//pl.wikibooks.org/w/index.php") != -1 ) { re = /\&diff=/g; this.diff = re.test(document.URL); re = /\&action=[^\&]*/g; this.action = document.URL.match(re); if ( this.action === null ) { this.action = 'get'; } else { this.action = this.action[0].slice(8, this.action[0].length); } } else { this.diff = null; this.action = 'get'; } } Common.pageInfo = new Common.PageInfoInit(); /** Collapsible tables ********************************************************* * * Description: Allows tables to be collapsed, showing only the header. See * [[en:Wikipedia:NavFrame]]. * Maintainers: [[User:R. Koot]] */ Common.autoCollapse = 2; Common.collapseCaption = "ukryj"; Common.expandCaption = "pokaż"; Common.collapseTable=function( tableIndex ) { var Button = document.getElementById( "collapseButton" + tableIndex ); var Table = document.getElementById( "collapsibleTable" + tableIndex ); if ( !Table || !Button ) { return false; } var Rows = Table.rows; if ( Button.firstChild.data == Common.collapseCaption ) { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = "none"; } Button.firstChild.data = Common.expandCaption; } else { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = Rows[0].style.display; } Button.firstChild.data = Common.collapseCaption; } } Common.createCollapseButtons=function() { var tableIndex = 0; var NavigationBoxes = new Object(); var Tables = document.getElementsByTagName( "table" ); for ( var i = 0; i < Tables.length; i++ ) { if ( $(Tables[i]).hasClass( "collapsible" ) ) { /* only add button and increment count if there is a header row to work with */ var HeaderRow = Tables[i].getElementsByTagName( "tr" )[0]; if (!HeaderRow) continue; var Header = HeaderRow.getElementsByTagName( "th" )[0]; if (!Header) continue; NavigationBoxes[ tableIndex ] = Tables[i]; Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex ); var Button = document.createElement( "span" ); var ButtonLink = document.createElement( "a" ); var ButtonText = document.createTextNode( Common.collapseCaption ); Button.style.styleFloat = "right"; Button.style.cssFloat = "right"; Button.style.fontWeight = "normal"; Button.style.textAlign = "right"; Button.style.width = "6em"; ButtonLink.style.color = Header.style.color; ButtonLink.setAttribute( "id", "collapseButton" + tableIndex ); ButtonLink.setAttribute( "href", "javascript:Common.collapseTable(" + tableIndex + ");" ); ButtonLink.appendChild( ButtonText ); Button.appendChild( document.createTextNode( "[" ) ); Button.appendChild( ButtonLink ); Button.appendChild( document.createTextNode( "]" ) ); $(Header.childNodes[0]).has('a#collapseButton' + tableIndex).each(function(i,element){ $(element).remove(); }); Header.insertBefore( Button, Header.childNodes[0]); tableIndex++; } } for ( var i = 0; i < tableIndex; i++ ) { if ( $(NavigationBoxes[i]).hasClass( "collapsed" ) || ( tableIndex >= Common.autoCollapse && $(NavigationBoxes[i]).hasClass( "Common.autoCollapse" ) ) ) { collapseTable( i ); } else if ( $(NavigationBoxes[i]).hasClass( "innercollapse" ) ) { var element = NavigationBoxes[i]; while (element = element.parentNode) { if ( $(element).hasClass( "outercollapse" ) ) { collapseTable ( i ); break; } } } } } $(Common.createCollapseButtons ); /** Dynamic Navigation Bars (experimental) ************************************* * * Description: See [[Wikipedia:NavFrame]]. * Maintainers: UNMAINTAINED */ // set up the words in your language Common.NavigationBarHide = '[' + Common.collapseCaption + ']'; Common.NavigationBarShow = '[' + Common.expandCaption + ']'; // shows and hides content and picture (if available) of navigation bars // Parameters: // indexNavigationBar: the index of navigation bar to be toggled Common.toggleNavigationBar=function(indexNavigationBar) { var NavToggle = document.getElementById("NavToggle" + indexNavigationBar); var NavFrame = document.getElementById("NavFrame" + indexNavigationBar); if (!NavFrame || !NavToggle) { return false; } // if shown now if (NavToggle.firstChild.data == Common.NavigationBarHide) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) ) { NavChild.style.display = 'none'; } if ( $(NavChild).hasClass( 'NavContent') ) { NavChild.style.display = 'none'; } } NavToggle.firstChild.data = Common.NavigationBarShow; // if hidden now } else if (NavToggle.firstChild.data == Common.NavigationBarShow) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ($(NavChild).hasClass( 'NavPic')) { NavChild.style.display = 'block'; } if ($(NavChild).hasClass( 'NavContent')) { NavChild.style.display = 'block'; } } NavToggle.firstChild.data = Common.NavigationBarHide; } } // adds show/hide-button to navigation bars Common.createNavigationBarToggleButton=function() { var indexNavigationBar = 0; // iterate over all < div >-elements var divs = document.getElementsByTagName("div"); for (var i = 0; NavFrame = divs[i]; i++) { // if found a navigation bar if ($(NavFrame).hasClass( "NavFrame")) { indexNavigationBar++; var NavToggle = document.createElement("a"); NavToggle.className = 'NavToggle'; NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar); NavToggle.setAttribute('href', 'javascript:Common.toggleNavigationBar(' + indexNavigationBar + ');'); var isCollapsed = $(NavFrame).hasClass( "collapsed" ); /* * Check if any children are already hidden. This loop is here for backwards compatibility: * the old way of making NavFrames start out collapsed was to manually add style="display:none" * to all the NavPic/NavContent elements. Since this was bad for accessibility (no way to make * the content visible without JavaScript support), the new recommended way is to add the class * "collapsed" to the NavFrame itself, just like with collapsible tables. */ for (var NavChild = NavFrame.firstChild; NavChild != null && !isCollapsed; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) || $(NavChild).hasClass( 'NavContent' ) ) { if ( NavChild.style.display == 'none' ) { isCollapsed = true; } } } if (isCollapsed) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) || $(NavChild).hasClass( 'NavContent' ) ) { NavChild.style.display = 'none'; } } } var NavToggleText = document.createTextNode(isCollapsed ? Common.NavigationBarShow : Common.NavigationBarHide); NavToggle.appendChild(NavToggleText); // Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked) for(var j=0; j < NavFrame.childNodes.length; j++) { if ($(NavFrame.childNodes[j]).hasClass( "NavHead")) { $(NavFrame.childNodes[j]).children('a.NavToggle#NavToggle' + indexNavigationBar).each(function(i,element){ $(element).remove(); }); NavFrame.childNodes[j].appendChild(NavToggle); } } NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar); } } } $(Common.createNavigationBarToggleButton ); // Wyszukiwanie Google na stronach podręczników Common.googleSearchInitialized = false; Common.insertGoogleSearch=function() { if ( mw.config.get('wgNamespaceNumber') != 0 || Common.googleSearchInitialized ) { return; } Common.googleSearchInitialized = true; var google = "http://www.google.com/custom?sa=Google+Search&domains=pl.wikibooks.org/wiki/PAGE&sitesearch=pl.wikibooks.org/wiki/PAGE"; var ul = jQuery('#p-tb ul')[0]; if (!ul) { return; } var link = document.createElement('a'); var book = Common.pageInfo.book; if ( book.length == 1 || book.indexOf('++') != -1 || encodeURIComponent(book) != book ) { google = "http://www.google.com/custom?sa=Google+Search&domains=pl.wikibooks.org/wiki/&sitesearch=pl.wikibooks.org/wiki/&q=%22PAGE%22" } link.href = google.replace(/PAGE/g, encodeURIComponent(book)); link.appendChild(document.createTextNode("Szukaj w podręczniku")); var li = document.createElement('li'); li.id = "google-trick-search"; li.appendChild(link); $(ul).children('li#google-trick-search').each(function(i,element){ $(element).remove(); }); ul.insertBefore(li, ul.firstChild); } $(Common.insertGoogleSearch); /*Funkcja do liczenia, czy nastąpiło przepełnienie poziome lub pionowe*/ Common.PobierzSzerokoscPaskaPrzewijania=function(){ var div = $('<div style="width:50px;height:50px;overflow:hidden;position:absolute;top:-200px;left:-200px;"><div style="height:100px;"></div></div>'); $('body').append(div); var w1 = $('div', div).innerWidth(); div.css('overflow-y', 'scroll'); var w2 = $('div', div).innerWidth(); $(div).remove(); return (w1 - w2); } /*Funkcje do obsługi pasków przewijania*/ Common.ScrollBarOverflow=function(){ $('*.mw-overflow-x, *.mw-overflow-y').each(function(i,element_g){ /*start overflow*/ var comp=window.getComputedStyle(element_g, null); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var overflow=comp.getPropertyValue("overflow"); var overflow_x=$(element_g).hasClass('mw-overflow-x'); if(overflow_x){ var overflowX=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); if((overflowX)&&(overflowX=="auto")){ element_g.classList.remove("mw-scrollbar-overflow-x"); const hasHorizontalScrollbar = element_g.scrollWidth > element_g.clientWidth; // true lub false if(hasHorizontalScrollbar){ element_g.classList.add("mw-scrollbar-overflow-x"); } } } var overflow_y=$(element_g).hasClass('mw-overflow-y'); if(overflow_y){ var overflowY=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflowY)&&(overflowY=="auto")){ element_g.classList.remove("mw-scrollbar-overflow-y"); const hasVerticalScrollbar = element_g.scrollHeight > element_g.clientHeight; // true lub false if(hasVerticalScrollbar){ element_g.classList.add("mw-scrollbar-overflow-y"); } } } /*koniec overflow*/ }); } $(function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); $(window).on('scroll', function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); $(window).on('resize', function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); /*Funkcja symulująca właściwości position:sticky, wszędzie tam, gdzie nie można go użyć.*/ Common.StickyXY=function(){ $('*.mw-sticky-x, *.mw-sticky-y').each(function(i,element_g){ var comp=window.getComputedStyle(element_g, null); function FunStickyXY(height,top,bottom,width_box,left_box,right_box,x_box,x_box_right){ var pozycje_paskow=new Array(); $(element_g).find('*').each(function(i,element){ var comp=window.getComputedStyle(element, null); var overflow=comp.getPropertyValue("overflow"); var overflow_x=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); var overflow_y=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflow_x=="auto")||(overflow_x=="scroll")||(overflow_y=="auto")||(overflow_y=="scroll")){ pozycje_paskow.push(new Array(element,element.scrollTop,element.scrollLeft)); } }); var height_sticky=0; $('html.client-js.vector-sticky-header-enabled body.skin-vector-search-vue.vector-sticky-header-visible header.vector-sticky-header').each(function(i,el){ var rect_sticky=el.getBoundingClientRect(); height_sticky=parseInt(rect_sticky[height]); }); var StickyXYTopOld=$(element_g).data('sctickyXYOld-top');var StickyXYBottomOld=$(element_g).data('sctickyXYOld-bottom'); if(StickyXYTopOld===undefined){ var topold_war=parseFloat(element_g.style[top]); $(element_g).data('sctickyXYOld-top',((!isNaN(topold_war))?topold_war:0)); } if(StickyXYBottomOld===undefined){ var bottomold_war=parseFloat(element_g.style[bottom]); $(element_g).data('sctickyXYOld-bottom',((!isNaN(bottomold_war))?bottomold_war:0)); } var topold=$(element_g).data('sctickyXYOld-top')+height_sticky+5; var margintop=parseFloat(comp.getPropertyValue("margin-"+top)); margintop=((!isNaN(margintop))?margintop:0); var marginbottom=parseFloat(comp.getPropertyValue("margin-"+bottom)); marginbottom=((!isNaN(marginbottom))?marginbottom:0); var przodek_height=undefined; element_g.style[height]="auto"; element_g.style["max"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[top]="auto"; element_g.style[bottom]="auto"; var x_box=undefined; if(width_box!=null){ element_g.style[width_box]="auto"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[left_box]="auto"; element_g.style[right_box]="0"; $(element_g).find('.mw-not-overflow-'+x_box+'.mw-overflow-'+x_box).each(function(i,element){ element.style[width_box]="auto"; }); } var parents_node_fun=$(element_g).parents('.mw-parent-node').first(); if((parents_node_fun==null)||(parents_node_fun.length==0)){return;} var width_rodzic=null; var rodzic_element=undefined; var comp_rodz; parents_node_fun.each(function(i,element){ comp_rodz=window.getComputedStyle(element,null); przodek_height=parseFloat(comp_rodz.getPropertyValue([height])); width_rodzic=width_box?parseFloat(comp_rodz.getPropertyValue([width_box])):null; rodzic_element=element; }); var height_box_real=parseFloat(comp.getPropertyValue(height)); var rect_dziecko=element_g.getBoundingClientRect(); var wys=document.documentElement["client"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]; var rect_rodzic; parents_node_fun.each(function(i,element){ rect_rodzic=element.getBoundingClientRect(); }); var top_ab=rect_rodzic[top]; var bottom_ab=(wys-rect_rodzic[bottom]); element_g.style["max"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=((Math.min(przodek_height,wys-((rect_rodzic[top]>=0)?(rect_rodzic[top]):(0))-((bottom_ab>=0)?(bottom_ab):(0)))-(((top_ab<=0)?(topold):(Math.max(0,topold-top_ab)))+((bottom_ab<=0)?($(element_g).data('sctickyXYOld-bottom')+5):(Math.max(0,$(element_g).data('sctickyXYOld-bottom')+5-bottom_ab)))+marginbottom+margintop))*(height_box_real/rect_dziecko[height]))+"px"; element_g.style[height]=(element_g["offset"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))])+"px"; var top_obj=(((top_ab>=0)?0:(-top_ab)))+((top_ab<=0)?(topold):(Math.max(0,topold-top_ab))); element_g.style[top]=top_obj+"px"; element_g.style[bottom]="auto"; if(width_box!=null){ element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; rodzic_element.style.position="static"; rodzic_element.style.overflow="hidden"; var width_box_real=parseFloat(comp.getPropertyValue(width_box)); var rect_dziecko=element_g.getBoundingClientRect(); if(parseInt(width_box_real)>parseInt(rect_dziecko[width_box])){ if(width_box=="width"){ element_g.classList.remove('mw-scrollbar-overflow-x'); }else{ element_g.classList.remove('mw-scrollbar-overflow-y'); } if(rect_dziecko[width_box]>width_rodzic){ if(width_box=="width"){ element_g.classList.add('mw-scrollbar-overflow-x'); }else{ element_g.classList.add('mw-scrollbar-overflow-y'); } } var width_box_real=parseFloat(comp.getPropertyValue(width_box)); var margin_all=parseFloat(comp.getPropertyValue("margin-"+left_box))+parseFloat(comp.getPropertyValue("margin-"+right_box)); margin_all+=parseFloat(comp_rodz.getPropertyValue("padding-"+left_box))+parseFloat(comp_rodz.getPropertyValue("padding-"+right_box)); var dlugosc=(width_rodzic-margin_all); dlugosc=((dlugosc>=0)?dlugosc:0); element_g.style.whiteSpace="nowrap"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width_box]))+"px"; element_g.style[width_box]=width_box_real+"px"; Common.ScrollBarOverflow(); $(element_g).find('.mw-overflow-'+x_box+'.mw-not-overflow-'+x_box+'.mw-scrollbar-overflow-'+x_box).each(function(i,element){ var comp_element=window.getComputedStyle(element, null) element.style.maxWidth=comp_element.getPropertyValue('max-width'); element.style.width=(element.scrollWidth+Common.PobierzSzerokoscPaskaPrzewijania()+parseFloat(comp_element.getPropertyValue('padding-left'))+parseFloat(comp_element.getPropertyValue('padding-right')))+"px"; var x_box_right=((width_box=="width")?"y":"x"); element.classList.remove('mw-scrollbar-overflow-'+x_box_right); }); element_g.style.whiteSpace="normal"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[width_box]="auto"; var rect_dziecko=element_g.getBoundingClientRect(); var width_box_real=parseFloat(comp.getPropertyValue(width_box)); element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width_box]))+"px"; element_g.style[width_box]=width_box_real+"px"; element_g.style[left_box]="0"; element_g.style[right_box]="auto"; rodzic_element.style.position="relative"; }else{ element_g.style.whiteSpace="nowrap"; var szerokosc_box=rect_dziecko[width_box]; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(szerokosc_box)+"px"; element_g.style[width_box]=(szerokosc_box)+"px"; Common.ScrollBarOverflow(); $(element_g).find('.mw-overflow-'+x_box+'.mw-not-overflow-'+x_box+'.mw-scrollbar-overflow-'+x_box).each(function(i,element){ var comp_element=window.getComputedStyle(element, null); element.style.width=(element.scrollWidth+Common.PobierzSzerokoscPaskaPrzewijania()+parseFloat(comp_element.getPropertyValue('padding-left'))+parseFloat(comp_element.getPropertyValue('padding-right')))+"px"; element.classList.remove('mw-scrollbar-overflow-'+x_box_right); }); element_g.style.whiteSpace="normal"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[width_box]="auto"; var rect_dziecko=element_g.getBoundingClientRect(); var szerokosc_box=rect_dziecko[width_box]; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(szerokosc_box)+"px"; element_g.style[width_box]=(szerokosc_box)+"px"; var szerokosc=rect_dziecko[width_box]+parseFloat(comp.getPropertyValue("margin-"+left_box))+parseFloat(comp.getPropertyValue("margin-"+right_box)); if(parseInt(szerokosc)>parseInt(width_rodzic)){ element_g.style[right_box]="0"; element_g.style[left_box]="auto"; rodzic_element.style.overflow="visible"; }else{ element_g.style[left_box]="0"; element_g.style[right_box]="auto"; rodzic_element.style.position="relative"; } } } element_g.style[height]="auto"; element_g.style[height]=(element_g["offset"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))])+"px"; Common.ScrollBarOverflow(); for(var i in pozycje_paskow){ pozycje_paskow[i][0].scrollTop=pozycje_paskow[i][1]; pozycje_paskow[i][0].scrollLeft=pozycje_paskow[i][2]; } } element_g.classList.add('mw-sticky-js'); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var visibility=comp.getPropertyValue("visibility"); if(visibility=="hidden"){return;} var position=comp.getPropertyValue("position"); if(position!="absolute"){return;} var sticky_x=$(element_g).hasClass('mw-sticky-x'); var sticky_y=$(element_g).hasClass('mw-sticky-y'); if((sticky_x)&&(!sticky_y)){ var str=$(element_g).parents('.strona_górna, .strona_dolna').first(); if(str.hasClass('strona_górna')){ FunStickyXY("width","left","right","height","top","bottom","y","x"); }else if(str.hasClass('strona_dolna')){ FunStickyXY("width","left","right","height","bottom","top","x","y"); } }else if((!sticky_x)&&(sticky_y)){ var str=$(element_g).parents('.strona_prawa, .strona_lewa').first(); if(str.hasClass('strona_prawa')){ FunStickyXY("height","top","bottom","width","left","right","x","y"); }else if(str.hasClass('strona_lewa')){ FunStickyXY("height","top","bottom","width","right","left","x","y"); } }else{ FunStickyXY("width","left","right",null); FunStickyXY("height","top","bottom",null); } }); } $(function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); $(window).on('scroll', function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); $(window).on('resize', function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); /*Funkcja do ustawiania maksymalnego rozmiaru dziecka, względem rodzica, przy position:absolute*/ Common.OptimalXY=function(){ $('*.mw-optimal-x, *.mw-optimal-y').each(function(i,element_g){ var comp=window.getComputedStyle(element_g, null); function FunOptimalXY(width,left,right){ var pozycje_paskow=new Array(); $(element_g).find('*').each(function(i,element){ var comp=window.getComputedStyle(element, null); var overflow=comp.getPropertyValue("overflow"); var overflow_x=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); var overflow_y=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflow_x=="auto")||(overflow_x=="scroll")||(overflow_y=="auto")||(overflow_y=="scroll")){ pozycje_paskow.push(new Array(element,element.scrollTop,element.scrollLeft)); } }); var width_rodzic=null; var rodzic_node; var comp_rodz; $(element_g).parents('.mw-parent-node').first().each(function(i,element){ comp_rodz=window.getComputedStyle(element,null); width_rodzic=parseFloat(comp_rodz.getPropertyValue([width])); rodzic_node=element; }); if((width_rodzic!=null)&&(!isNaN(width_rodzic))){ element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; var width_box_real=parseFloat(comp.getPropertyValue(width)); var rect_dziecko=element_g.getBoundingClientRect(); if(width=="width"){ element_g.classList.remove('mw-scrollbar-overflow-x'); }else{ element_g.classList.remove('mw-scrollbar-overflow-y'); } if(parseInt(width_box_real)>parseInt(rect_dziecko[width])){ var rect_dziecko=element_g.getBoundingClientRect(); if(rect_dziecko[width]>width_rodzic){ if(width=="width"){ element_g.classList.add('mw-scrollbar-overflow-x'); }else{ element_g.classList.add('mw-scrollbar-overflow-y'); } } var width_box_real=parseFloat(comp.getPropertyValue(width)); var margin_all=parseFloat(comp.getPropertyValue("margin-"+left))+parseFloat(comp.getPropertyValue("margin-"+right)); margin_all+=parseFloat(comp_rodz.getPropertyValue("padding-"+left))+parseFloat(comp_rodz.getPropertyValue("padding-"+right)); var dlugosc=(width_rodzic-margin_all); dlugosc=((dlugosc>=0)?dlugosc:0); element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width]))+"px"; }else{ element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(rect_dziecko[width])+"px"; } var str=$(element_g).parents('.strona_prawa, .strona_lewa').first(); if(!str.hasClass('strona_start-nawigacja_boksy')){ var rect_dziecko=element_g.getBoundingClientRect(); var szerokosc=rect_dziecko[width]+parseFloat(comp.getPropertyValue("margin-left"))+parseFloat(comp.getPropertyValue("margin-right")); if(parseInt(szerokosc)>parseInt(width_rodzic)){ str.css('position','static'); }else{ str.css('position','relative'); } } } for(var i in pozycje_paskow){ pozycje_paskow[i][0].scrollTop=pozycje_paskow[i][1]; pozycje_paskow[i][0].scrollLeft=pozycje_paskow[i][2]; } }; element_g.classList.add('mw-optimal-js'); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var visibility=comp.getPropertyValue("visibility"); if(visibility=="hidden"){return;} var position=comp.getPropertyValue("position"); if(position!="absolute"){return;} var optimal_x=$(element_g).hasClass('mw-optimal-x'); var optimal_y=$(element_g).hasClass('mw-optimal-y'); if(optimal_x){ FunOptimalXY("width","left","right"); } if(optimal_y){ FunOptimalXY("height","top","bottom"); } }); } $(function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); $(window).on("scroll",function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); $(window).on("resize",function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); /*Uruchamianie dodatkowych funkcji, niż standardowe, w href w linkach rozwijanej tabeli TABLE lub ramki DIV, jeśli ona generuje zwiększenie rozmiarów, aby w rodzicu pojawił się pasek przewijania, z dodatkowymi opcjami generowanej przez arkusz kalkulacyjny CSS*/ Common.RamkiTableIDiv=function(obiekt,id_tabeli_lub_ramki,id_nazwa_a,fun_obiektu){ $(obiekt).each(function(i,element_f){ return new Promise(function(resolve,reject){ var czas=0; function Czekaj(){ if(czas>30000){ reject(); } var collapsebutton=$(element_f).find('a#'+id_nazwa_a+i); if((collapsebutton!==null)&&(collapsebutton.length>0)){ var tabele_lub_ramki=collapsebutton.parents('#'+id_tabeli_lub_ramki+i); if((tabele_lub_ramki===null)||(tabele_lub_ramki.length==0)){reject();} resolve(i); }else{ czas+=100; setTimeout(Czekaj,100); } } Czekaj(); }).then(function(i){ $('*.mw-overflow-x a#'+id_nazwa_a+i+', *.mw-overflow-y a#'+id_nazwa_a+i).each(function(j,element_g){ var href=element_g.getAttribute('href'); if((href!=null)&&(href!="")){ var col="[\\s;\\(\\,]*javascript:"+fun_obiektu.replace(/\./g,"\\.")+"\\s*\\(\\s*"+i+"\\s*\\)[\\s;\\)\\,]*"; var re_frame = new RegExp(col,'g'); var re_javascript=new RegExp("^[\\s;]*javascript:"); if((re_javascript.test(href))&&(re_frame.test(href))){ element_g.setAttribute('href',href.replace(/[;\s]*$/g,"")+';javascript:Common.ScrollBarOverflow();javascript:Common.StickyXY();javascript:Common.OptimalXY()') } } }); }).catch(function(){}); }); }; /*Dla menu rozwijanego tabeli TABLE zdefiniowanej na stronie MediaWiki:Common.js*/ Common.RamkiTableIDiv("table.collapsible",'collapsibleTable','collapseButton','Common.collapseTable'); /*Dla menu rozwijanej ramki DIV zdefiniowanej na stronie MediaWiki:Common.js*/ Common.RamkiTableIDiv("div.NavFrame",'NavFrame','NavToggle','Common.toggleNavigationBar'); /*Koniec dodatkowych funkcji*/ /*Uruchamianie dodatkowych zdarzeń do Common.StickyXY i OptimalXY*/ Common.ZdarzeniaDodatkoweFunkcyjneXY=function(css,fun_zdarz){ var fun_css=$(css); fun_css.on('mouseenter',fun_zdarz); fun_css.on('mouseleave',fun_zdarz); fun_css.on('transitionstart',fun_zdarz); fun_css.on('webkittransitionstart',fun_zdarz); fun_css.on('moztransitionstart',fun_zdarz); fun_css.on('otransitionstart',fun_zdarz); fun_css.on('transitionrun',fun_zdarz); fun_css.on('webkittransitionrun',fun_zdarz); fun_css.on('moztransitionrun',fun_zdarz); fun_css.on('otransitionrun',fun_zdarz); fun_css.on('transitioncancel',fun_zdarz); fun_css.on('webkittransitioncancel',fun_zdarz); fun_css.on('moztransitioncancel',fun_zdarz); fun_css.on('otransitioncancel',fun_zdarz); fun_css.on('transitionend',fun_zdarz); fun_css.on('webkittransitionend',fun_zdarz); fun_css.on('moztransitionend',fun_zdarz); fun_css.on('otransitionend',fun_zdarz); }; Common.ZdarzeniaDodatkoweFunkcyjneXY("*.mw-sticky-x, *.mw-sticky-y",Common.StickyXY); Common.ZdarzeniaDodatkoweFunkcyjneXY('*.mw-optimal-x, *.mw-optimal-y',Common.OptimalXY); /*Koniec dodatkowych zdarzeń*/ /*Program do obsługi szablonu StronaStart i jego pokrewnych książkowych*/ Common.StronaStart=function(){ var elements=$('.strona_start .strona .ciało_zawartości > .menu > .menu_boks'); elements.parent().show(); $('.strona_start').find('.strona_lewa .nawigacja_boksy, .strona_prawa .nawigacja_boksy').each(function(i,element){ $(element).css('visibility',"hidden"); }); $('.strona_start').find('.strona_lewa .nawigacja_spis, .strona_prawa .nawigacja_spis').each(function(i,element){ var czy_visible=$(element).css('visibility'); $(element).css('visibility',"visible"); var str=$(element).parents('.strona_prawa, .strona_lewa').first(); str.css('position','relative'); str.addClass('strona_start-nawigacja_spis'); str.removeClass('strona_start-nawigacja_boksy'); if(czy_visible=="hidden"){ $(Common.ScrollBarOverflow); $(Common.StickyXY); } }); function StronaStartFun(){ var id=this; $(id).parents('.strona_start').first().find('.strona .ciało_zawartości > .menu > .menu_boks').children().each(function(i,element){ var display=$(element).css('display'); if(display=="none"){ $(element).css('display',"block"); }else{ $(element).css('display',"none"); } }); $(id).parents('.strona_start').first().find('.strona_lewa, .strona_prawa').children().each(function(i,element){ var visibility=window.getComputedStyle(element, null).getPropertyValue('visibility'); if(visibility=="hidden"){ $(element).css('visibility',"visible"); var str=$(element).parents('.strona_prawa, .strona_lewa').first(); if($(element).hasClass('nawigacja_boksy')){ str.css('position','static'); str.addClass('strona_start-nawigacja_boksy'); str.removeClass('strona_start-nawigacja_spis'); $(Common.ScrollBarOverflow); $(Common.OptimalXY); }else if($(element).hasClass('nawigacja_spis')){ str.css('position','relative'); str.addClass('strona_start-nawigacja_spis'); str.removeClass('strona_start-nawigacja_boksy'); $(Common.ScrollBarOverflow); $(Common.StickyXY); } }else{ $(element).css('visibility',"hidden"); } }); } elements.on('click',StronaStartFun); } $(Common.StronaStart); fjl0lrxcdgrd6da4eqga5kfvu3pbii5 437142 437141 2022-08-07T15:51:43Z Persino 2851 javascript text/javascript mw.loader.load( '//pl.wikibooks.org/w/index.php?action=raw&ctype=text/javascript&title=Wikipedysta:Persino/Gadget-StronicowyParser.js', 'text/javascript', true ); /**/ /* Umieszczony tutaj kod JavaScript zostanie załadowany przez każdego użytkownika, podczas każdego ładowania strony. */ // Frame Busting if (top != self) top.location.href = self.location.href; /* * Zmienna Common.pageInfo, jego elementy, instrukcja obsługi: * Common.pageInfo.namespace numer przestrzeni nazw (równe wgNamespaceNumber) * Common.pageInfo.name pełna nazwa strony * Common.pageInfo.title tytuł strony, czyli ostatnia część po '/' albo jest równe pageInfo.name, gdy nigdzie nie występuje slash * Common.pageInfo.book tytuł książki * Common.pageInfo.action akcja taka jaka jest w adresie URL pod "action=", w przypadku normalnego czytania strony, action jest równe "get" * Common.pageInfo.diff null w przypadku, gdy nie porównujemy wersji, w przeciwnym wypadku wartość występującą w adresie URL */ /*Przestrzeń nazw: Common, zdefiniowanym za pomocą tablicy*/ var Common=new Array(); /*Funkcje w przestrzeni nazw Common*/ Common.Naglowek=function(){ /* Skrypt odpowiedzialny za wyświetlanie szablonu Nagłówek [[Szablon:Nagłówek]] */ var hideAll = document.getElementById('mójNagłówekUkryj'); var noFooter = false; var footers = 0; var tags = document.getElementsByTagName('div'); for (var i = 0; i < tags.length; i++) { var el=tags[i].getAttribute("id"); if (el=='mojaStopka') footers++; else if (hideAll && (el=='mójNagłówek')) { tags[i].innerHTML=""; noFooter=true; } } if (noFooter) return; var footer = document.getElementById('mojaStopka'); if ((footer !== null) && (footers==1)) { var bodyContent = document.getElementById('bodyContent'); if (bodyContent !== null) { var s0=document.getElementById('mojaStopka0'); var s1=document.getElementById('mojaStopka1'); if ((s1 !== null) || ((s0 === null) && (bodyContent.innerHTML.length>8000))){ var strona=document.getElementById('strona'); if(strona!==null){ strona.appendChild(footer); }else{ var catlinks=document.getElementById('catlinks'); if(catlinks !== null){ bodyContent.insertBefore(footer,catlinks); }else{ bodyContent.appendChild(footer); } } } } } /* Koniec skryptu odpowiedzialnego za wyświetlanie szablonu Nagłówek [[Szablon:Nagłówek]] */ }; $(Common.Naglowek); /*Informacje o danej stronie*/ Common.PageInfoInit=function(){ var _g = /_/g; this.name = mw.config.get('wgPageName').replace(/_/g, ' '); this.namespace = mw.config.get('wgNamespaceNumber'); var i = this.name.search(/\/[^\/]*$/g); this.title = this.name.slice(i + 1); this.book = this.name.replace(/\/.*/g, ""); if ( document.URL.search("//pl.wikibooks.org/w/index.php") != -1 ) { re = /\&diff=/g; this.diff = re.test(document.URL); re = /\&action=[^\&]*/g; this.action = document.URL.match(re); if ( this.action === null ) { this.action = 'get'; } else { this.action = this.action[0].slice(8, this.action[0].length); } } else { this.diff = null; this.action = 'get'; } } Common.pageInfo = new Common.PageInfoInit(); /** Collapsible tables ********************************************************* * * Description: Allows tables to be collapsed, showing only the header. See * [[en:Wikipedia:NavFrame]]. * Maintainers: [[User:R. Koot]] */ Common.autoCollapse = 2; Common.collapseCaption = "ukryj"; Common.expandCaption = "pokaż"; Common.collapseTable=function( tableIndex ) { var Button = document.getElementById( "collapseButton" + tableIndex ); var Table = document.getElementById( "collapsibleTable" + tableIndex ); if ( !Table || !Button ) { return false; } var Rows = Table.rows; if ( Button.firstChild.data == Common.collapseCaption ) { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = "none"; } Button.firstChild.data = Common.expandCaption; } else { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = Rows[0].style.display; } Button.firstChild.data = Common.collapseCaption; } } Common.createCollapseButtons=function() { var tableIndex = 0; var NavigationBoxes = new Object(); var Tables = document.getElementsByTagName( "table" ); for ( var i = 0; i < Tables.length; i++ ) { if ( $(Tables[i]).hasClass( "collapsible" ) ) { /* only add button and increment count if there is a header row to work with */ var HeaderRow = Tables[i].getElementsByTagName( "tr" )[0]; if (!HeaderRow) continue; var Header = HeaderRow.getElementsByTagName( "th" )[0]; if (!Header) continue; NavigationBoxes[ tableIndex ] = Tables[i]; Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex ); var Button = document.createElement( "span" ); var ButtonLink = document.createElement( "a" ); var ButtonText = document.createTextNode( Common.collapseCaption ); Button.style.styleFloat = "right"; Button.style.cssFloat = "right"; Button.style.fontWeight = "normal"; Button.style.textAlign = "right"; Button.style.width = "6em"; ButtonLink.style.color = Header.style.color; ButtonLink.setAttribute( "id", "collapseButton" + tableIndex ); ButtonLink.setAttribute( "href", "javascript:Common.collapseTable(" + tableIndex + ");" ); ButtonLink.appendChild( ButtonText ); Button.appendChild( document.createTextNode( "[" ) ); Button.appendChild( ButtonLink ); Button.appendChild( document.createTextNode( "]" ) ); $(Header.childNodes[0]).has('a#collapseButton' + tableIndex).each(function(i,element){ $(element).remove(); }); Header.insertBefore( Button, Header.childNodes[0]); tableIndex++; } } for ( var i = 0; i < tableIndex; i++ ) { if ( $(NavigationBoxes[i]).hasClass( "collapsed" ) || ( tableIndex >= Common.autoCollapse && $(NavigationBoxes[i]).hasClass( "Common.autoCollapse" ) ) ) { collapseTable( i ); } else if ( $(NavigationBoxes[i]).hasClass( "innercollapse" ) ) { var element = NavigationBoxes[i]; while (element = element.parentNode) { if ( $(element).hasClass( "outercollapse" ) ) { collapseTable ( i ); break; } } } } } $(Common.createCollapseButtons ); /** Dynamic Navigation Bars (experimental) ************************************* * * Description: See [[Wikipedia:NavFrame]]. * Maintainers: UNMAINTAINED */ // set up the words in your language Common.NavigationBarHide = '[' + Common.collapseCaption + ']'; Common.NavigationBarShow = '[' + Common.expandCaption + ']'; // shows and hides content and picture (if available) of navigation bars // Parameters: // indexNavigationBar: the index of navigation bar to be toggled Common.toggleNavigationBar=function(indexNavigationBar) { var NavToggle = document.getElementById("NavToggle" + indexNavigationBar); var NavFrame = document.getElementById("NavFrame" + indexNavigationBar); if (!NavFrame || !NavToggle) { return false; } // if shown now if (NavToggle.firstChild.data == Common.NavigationBarHide) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) ) { NavChild.style.display = 'none'; } if ( $(NavChild).hasClass( 'NavContent') ) { NavChild.style.display = 'none'; } } NavToggle.firstChild.data = Common.NavigationBarShow; // if hidden now } else if (NavToggle.firstChild.data == Common.NavigationBarShow) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ($(NavChild).hasClass( 'NavPic')) { NavChild.style.display = 'block'; } if ($(NavChild).hasClass( 'NavContent')) { NavChild.style.display = 'block'; } } NavToggle.firstChild.data = Common.NavigationBarHide; } } // adds show/hide-button to navigation bars Common.createNavigationBarToggleButton=function() { var indexNavigationBar = 0; // iterate over all < div >-elements var divs = document.getElementsByTagName("div"); for (var i = 0; NavFrame = divs[i]; i++) { // if found a navigation bar if ($(NavFrame).hasClass( "NavFrame")) { indexNavigationBar++; var NavToggle = document.createElement("a"); NavToggle.className = 'NavToggle'; NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar); NavToggle.setAttribute('href', 'javascript:Common.toggleNavigationBar(' + indexNavigationBar + ');'); var isCollapsed = $(NavFrame).hasClass( "collapsed" ); /* * Check if any children are already hidden. This loop is here for backwards compatibility: * the old way of making NavFrames start out collapsed was to manually add style="display:none" * to all the NavPic/NavContent elements. Since this was bad for accessibility (no way to make * the content visible without JavaScript support), the new recommended way is to add the class * "collapsed" to the NavFrame itself, just like with collapsible tables. */ for (var NavChild = NavFrame.firstChild; NavChild != null && !isCollapsed; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) || $(NavChild).hasClass( 'NavContent' ) ) { if ( NavChild.style.display == 'none' ) { isCollapsed = true; } } } if (isCollapsed) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) || $(NavChild).hasClass( 'NavContent' ) ) { NavChild.style.display = 'none'; } } } var NavToggleText = document.createTextNode(isCollapsed ? Common.NavigationBarShow : Common.NavigationBarHide); NavToggle.appendChild(NavToggleText); // Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked) for(var j=0; j < NavFrame.childNodes.length; j++) { if ($(NavFrame.childNodes[j]).hasClass( "NavHead")) { $(NavFrame.childNodes[j]).children('a.NavToggle#NavToggle' + indexNavigationBar).each(function(i,element){ $(element).remove(); }); NavFrame.childNodes[j].appendChild(NavToggle); } } NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar); } } } $(Common.createNavigationBarToggleButton ); // Wyszukiwanie Google na stronach podręczników Common.googleSearchInitialized = false; Common.insertGoogleSearch=function() { if ( mw.config.get('wgNamespaceNumber') != 0 || Common.googleSearchInitialized ) { return; } Common.googleSearchInitialized = true; var google = "http://www.google.com/custom?sa=Google+Search&domains=pl.wikibooks.org/wiki/PAGE&sitesearch=pl.wikibooks.org/wiki/PAGE"; var ul = jQuery('#p-tb ul')[0]; if (!ul) { return; } var link = document.createElement('a'); var book = Common.pageInfo.book; if ( book.length == 1 || book.indexOf('++') != -1 || encodeURIComponent(book) != book ) { google = "http://www.google.com/custom?sa=Google+Search&domains=pl.wikibooks.org/wiki/&sitesearch=pl.wikibooks.org/wiki/&q=%22PAGE%22" } link.href = google.replace(/PAGE/g, encodeURIComponent(book)); link.appendChild(document.createTextNode("Szukaj w podręczniku")); var li = document.createElement('li'); li.id = "google-trick-search"; li.appendChild(link); $(ul).children('li#google-trick-search').each(function(i,element){ $(element).remove(); }); ul.insertBefore(li, ul.firstChild); } $(Common.insertGoogleSearch); /*Funkcja do liczenia, czy nastąpiło przepełnienie poziome lub pionowe*/ Common.PobierzSzerokoscPaskaPrzewijania=function(){ var div = $('<div style="width:50px;height:50px;overflow:hidden;position:absolute;top:-200px;left:-200px;"><div style="height:100px;"></div></div>'); $('body').append(div); var w1 = $('div', div).innerWidth(); div.css('overflow-y', 'scroll'); var w2 = $('div', div).innerWidth(); $(div).remove(); return (w1 - w2); } /*Funkcje do obsługi pasków przewijania*/ Common.ScrollBarOverflow=function(){ $('*.mw-overflow-x, *.mw-overflow-y').each(function(i,element_g){ /*start overflow*/ var comp=window.getComputedStyle(element_g, null); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var overflow=comp.getPropertyValue("overflow"); var overflow_x=$(element_g).hasClass('mw-overflow-x'); if(overflow_x){ var overflowX=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); if((overflowX)&&(overflowX=="auto")){ element_g.classList.remove("mw-scrollbar-overflow-x"); const hasHorizontalScrollbar = element_g.scrollWidth > element_g.clientWidth; // true lub false if(hasHorizontalScrollbar){ element_g.classList.add("mw-scrollbar-overflow-x"); } } } var overflow_y=$(element_g).hasClass('mw-overflow-y'); if(overflow_y){ var overflowY=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflowY)&&(overflowY=="auto")){ element_g.classList.remove("mw-scrollbar-overflow-y"); const hasVerticalScrollbar = element_g.scrollHeight > element_g.clientHeight; // true lub false if(hasVerticalScrollbar){ element_g.classList.add("mw-scrollbar-overflow-y"); } } } /*koniec overflow*/ }); } $(function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); $(window).on('scroll', function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); $(window).on('resize', function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); /*Funkcja symulująca właściwości position:sticky, wszędzie tam, gdzie nie można go użyć.*/ Common.StickyXY=function(){ $('*.mw-sticky-x, *.mw-sticky-y').each(function(i,element_g){ var comp=window.getComputedStyle(element_g, null); function FunStickyXY(height,top,bottom,width_box,left_box,right_box,x_box,x_box_right){ var pozycje_paskow=new Array(); $(element_g).find('*').each(function(i,element){ var comp=window.getComputedStyle(element, null); var overflow=comp.getPropertyValue("overflow"); var overflow_x=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); var overflow_y=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflow_x=="auto")||(overflow_x=="scroll")||(overflow_y=="auto")||(overflow_y=="scroll")){ pozycje_paskow.push(new Array(element,element.scrollTop,element.scrollLeft)); } }); var height_sticky=0; $('html.client-js.vector-sticky-header-enabled body.skin-vector-search-vue.vector-sticky-header-visible header.vector-sticky-header').each(function(i,el){ var rect_sticky=el.getBoundingClientRect(); height_sticky=parseInt(rect_sticky[height]); }); var StickyXYTopOld=$(element_g).data('sctickyXYOld-top');var StickyXYBottomOld=$(element_g).data('sctickyXYOld-bottom'); if(StickyXYTopOld===undefined){ var topold_war=parseFloat(element_g.style[top]); $(element_g).data('sctickyXYOld-top',((!isNaN(topold_war))?topold_war:0)); } if(StickyXYBottomOld===undefined){ var bottomold_war=parseFloat(element_g.style[bottom]); $(element_g).data('sctickyXYOld-bottom',((!isNaN(bottomold_war))?bottomold_war:0)); } var topold=$(element_g).data('sctickyXYOld-top')+height_sticky+5; var margintop=parseFloat(comp.getPropertyValue("margin-"+top)); margintop=((!isNaN(margintop))?margintop:0); var marginbottom=parseFloat(comp.getPropertyValue("margin-"+bottom)); marginbottom=((!isNaN(marginbottom))?marginbottom:0); var przodek_height=undefined; element_g.style[height]="auto"; element_g.style["max"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[top]="auto"; element_g.style[bottom]="auto"; if(width_box!=null){ element_g.style[width_box]="auto"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[left_box]="auto"; element_g.style[right_box]="0"; $(element_g).find('.mw-not-overflow-'+x_box+'.mw-overflow-'+x_box).each(function(i,element){ element.style[width_box]="auto"; }); } var parents_node_fun=$(element_g).parents('.mw-parent-node').first(); if((parents_node_fun==null)||(parents_node_fun.length==0)){return;} var width_rodzic=null; var rodzic_element=undefined; var comp_rodz; parents_node_fun.each(function(i,element){ comp_rodz=window.getComputedStyle(element,null); przodek_height=parseFloat(comp_rodz.getPropertyValue([height])); width_rodzic=width_box?parseFloat(comp_rodz.getPropertyValue([width_box])):null; rodzic_element=element; }); var height_box_real=parseFloat(comp.getPropertyValue(height)); var rect_dziecko=element_g.getBoundingClientRect(); var wys=document.documentElement["client"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]; var rect_rodzic; parents_node_fun.each(function(i,element){ rect_rodzic=element.getBoundingClientRect(); }); var top_ab=rect_rodzic[top]; var bottom_ab=(wys-rect_rodzic[bottom]); element_g.style["max"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=((Math.min(przodek_height,wys-((rect_rodzic[top]>=0)?(rect_rodzic[top]):(0))-((bottom_ab>=0)?(bottom_ab):(0)))-(((top_ab<=0)?(topold):(Math.max(0,topold-top_ab)))+((bottom_ab<=0)?($(element_g).data('sctickyXYOld-bottom')+5):(Math.max(0,$(element_g).data('sctickyXYOld-bottom')+5-bottom_ab)))+marginbottom+margintop))*(height_box_real/rect_dziecko[height]))+"px"; element_g.style[height]=(element_g["offset"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))])+"px"; var top_obj=(((top_ab>=0)?0:(-top_ab)))+((top_ab<=0)?(topold):(Math.max(0,topold-top_ab))); element_g.style[top]=top_obj+"px"; element_g.style[bottom]="auto"; if(width_box!=null){ element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; rodzic_element.style.position="static"; rodzic_element.style.overflow="hidden"; var width_box_real=parseFloat(comp.getPropertyValue(width_box)); var rect_dziecko=element_g.getBoundingClientRect(); if(parseInt(width_box_real)>parseInt(rect_dziecko[width_box])){ if(width_box=="width"){ element_g.classList.remove('mw-scrollbar-overflow-x'); }else{ element_g.classList.remove('mw-scrollbar-overflow-y'); } if(rect_dziecko[width_box]>width_rodzic){ if(width_box=="width"){ element_g.classList.add('mw-scrollbar-overflow-x'); }else{ element_g.classList.add('mw-scrollbar-overflow-y'); } } var width_box_real=parseFloat(comp.getPropertyValue(width_box)); var margin_all=parseFloat(comp.getPropertyValue("margin-"+left_box))+parseFloat(comp.getPropertyValue("margin-"+right_box)); margin_all+=parseFloat(comp_rodz.getPropertyValue("padding-"+left_box))+parseFloat(comp_rodz.getPropertyValue("padding-"+right_box)); var dlugosc=(width_rodzic-margin_all); dlugosc=((dlugosc>=0)?dlugosc:0); element_g.style.whiteSpace="nowrap"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width_box]))+"px"; element_g.style[width_box]=width_box_real+"px"; Common.ScrollBarOverflow(); $(element_g).find('.mw-overflow-'+x_box+'.mw-not-overflow-'+x_box+'.mw-scrollbar-overflow-'+x_box).each(function(i,element){ var comp_element=window.getComputedStyle(element, null) element.style.maxWidth=comp_element.getPropertyValue('max-width'); element.style.width=(element.scrollWidth+Common.PobierzSzerokoscPaskaPrzewijania()+parseFloat(comp_element.getPropertyValue('padding-left'))+parseFloat(comp_element.getPropertyValue('padding-right')))+"px"; element.classList.remove('mw-scrollbar-overflow-'+x_box_right); }); element_g.style.whiteSpace="normal"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[width_box]="auto"; var rect_dziecko=element_g.getBoundingClientRect(); var width_box_real=parseFloat(comp.getPropertyValue(width_box)); element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width_box]))+"px"; element_g.style[width_box]=width_box_real+"px"; element_g.style[left_box]="0"; element_g.style[right_box]="auto"; rodzic_element.style.position="relative"; }else{ element_g.style.whiteSpace="nowrap"; var szerokosc_box=rect_dziecko[width_box]; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(szerokosc_box)+"px"; element_g.style[width_box]=(szerokosc_box)+"px"; Common.ScrollBarOverflow(); $(element_g).find('.mw-overflow-'+x_box+'.mw-not-overflow-'+x_box+'.mw-scrollbar-overflow-'+x_box).each(function(i,element){ var comp_element=window.getComputedStyle(element, null); element.style.width=(element.scrollWidth+Common.PobierzSzerokoscPaskaPrzewijania()+parseFloat(comp_element.getPropertyValue('padding-left'))+parseFloat(comp_element.getPropertyValue('padding-right')))+"px"; element.classList.remove('mw-scrollbar-overflow-'+x_box_right); }); element_g.style.whiteSpace="normal"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[width_box]="auto"; var rect_dziecko=element_g.getBoundingClientRect(); var szerokosc_box=rect_dziecko[width_box]; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(szerokosc_box)+"px"; element_g.style[width_box]=(szerokosc_box)+"px"; var szerokosc=rect_dziecko[width_box]+parseFloat(comp.getPropertyValue("margin-"+left_box))+parseFloat(comp.getPropertyValue("margin-"+right_box)); if(parseInt(szerokosc)>parseInt(width_rodzic)){ element_g.style[right_box]="0"; element_g.style[left_box]="auto"; rodzic_element.style.overflow="visible"; }else{ element_g.style[left_box]="0"; element_g.style[right_box]="auto"; rodzic_element.style.position="relative"; } } } element_g.style[height]="auto"; element_g.style[height]=(element_g["offset"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))])+"px"; Common.ScrollBarOverflow(); for(var i in pozycje_paskow){ pozycje_paskow[i][0].scrollTop=pozycje_paskow[i][1]; pozycje_paskow[i][0].scrollLeft=pozycje_paskow[i][2]; } } element_g.classList.add('mw-sticky-js'); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var visibility=comp.getPropertyValue("visibility"); if(visibility=="hidden"){return;} var position=comp.getPropertyValue("position"); if(position!="absolute"){return;} var sticky_x=$(element_g).hasClass('mw-sticky-x'); var sticky_y=$(element_g).hasClass('mw-sticky-y'); if((sticky_x)&&(!sticky_y)){ var str=$(element_g).parents('.strona_górna, .strona_dolna').first(); if(str.hasClass('strona_górna')){ FunStickyXY("width","left","right","height","top","bottom","y","x"); }else if(str.hasClass('strona_dolna')){ FunStickyXY("width","left","right","height","bottom","top","x","y"); } }else if((!sticky_x)&&(sticky_y)){ var str=$(element_g).parents('.strona_prawa, .strona_lewa').first(); if(str.hasClass('strona_prawa')){ FunStickyXY("height","top","bottom","width","left","right","x","y"); }else if(str.hasClass('strona_lewa')){ FunStickyXY("height","top","bottom","width","right","left","x","y"); } }else{ FunStickyXY("width","left","right",null); FunStickyXY("height","top","bottom",null); } }); } $(function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); $(window).on('scroll', function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); $(window).on('resize', function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); /*Funkcja do ustawiania maksymalnego rozmiaru dziecka, względem rodzica, przy position:absolute*/ Common.OptimalXY=function(){ $('*.mw-optimal-x, *.mw-optimal-y').each(function(i,element_g){ var comp=window.getComputedStyle(element_g, null); function FunOptimalXY(width,left,right){ var pozycje_paskow=new Array(); $(element_g).find('*').each(function(i,element){ var comp=window.getComputedStyle(element, null); var overflow=comp.getPropertyValue("overflow"); var overflow_x=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); var overflow_y=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflow_x=="auto")||(overflow_x=="scroll")||(overflow_y=="auto")||(overflow_y=="scroll")){ pozycje_paskow.push(new Array(element,element.scrollTop,element.scrollLeft)); } }); var width_rodzic=null; var rodzic_node; var comp_rodz; $(element_g).parents('.mw-parent-node').first().each(function(i,element){ comp_rodz=window.getComputedStyle(element,null); width_rodzic=parseFloat(comp_rodz.getPropertyValue([width])); rodzic_node=element; }); if((width_rodzic!=null)&&(!isNaN(width_rodzic))){ element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; var width_box_real=parseFloat(comp.getPropertyValue(width)); var rect_dziecko=element_g.getBoundingClientRect(); if(width=="width"){ element_g.classList.remove('mw-scrollbar-overflow-x'); }else{ element_g.classList.remove('mw-scrollbar-overflow-y'); } if(parseInt(width_box_real)>parseInt(rect_dziecko[width])){ var rect_dziecko=element_g.getBoundingClientRect(); if(rect_dziecko[width]>width_rodzic){ if(width=="width"){ element_g.classList.add('mw-scrollbar-overflow-x'); }else{ element_g.classList.add('mw-scrollbar-overflow-y'); } } var width_box_real=parseFloat(comp.getPropertyValue(width)); var margin_all=parseFloat(comp.getPropertyValue("margin-"+left))+parseFloat(comp.getPropertyValue("margin-"+right)); margin_all+=parseFloat(comp_rodz.getPropertyValue("padding-"+left))+parseFloat(comp_rodz.getPropertyValue("padding-"+right)); var dlugosc=(width_rodzic-margin_all); dlugosc=((dlugosc>=0)?dlugosc:0); element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width]))+"px"; }else{ element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(rect_dziecko[width])+"px"; } var str=$(element_g).parents('.strona_prawa, .strona_lewa').first(); if(!str.hasClass('strona_start-nawigacja_boksy')){ var rect_dziecko=element_g.getBoundingClientRect(); var szerokosc=rect_dziecko[width]+parseFloat(comp.getPropertyValue("margin-left"))+parseFloat(comp.getPropertyValue("margin-right")); if(parseInt(szerokosc)>parseInt(width_rodzic)){ str.css('position','static'); }else{ str.css('position','relative'); } } } for(var i in pozycje_paskow){ pozycje_paskow[i][0].scrollTop=pozycje_paskow[i][1]; pozycje_paskow[i][0].scrollLeft=pozycje_paskow[i][2]; } }; element_g.classList.add('mw-optimal-js'); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var visibility=comp.getPropertyValue("visibility"); if(visibility=="hidden"){return;} var position=comp.getPropertyValue("position"); if(position!="absolute"){return;} var optimal_x=$(element_g).hasClass('mw-optimal-x'); var optimal_y=$(element_g).hasClass('mw-optimal-y'); if(optimal_x){ FunOptimalXY("width","left","right"); } if(optimal_y){ FunOptimalXY("height","top","bottom"); } }); } $(function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); $(window).on("scroll",function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); $(window).on("resize",function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); /*Uruchamianie dodatkowych funkcji, niż standardowe, w href w linkach rozwijanej tabeli TABLE lub ramki DIV, jeśli ona generuje zwiększenie rozmiarów, aby w rodzicu pojawił się pasek przewijania, z dodatkowymi opcjami generowanej przez arkusz kalkulacyjny CSS*/ Common.RamkiTableIDiv=function(obiekt,id_tabeli_lub_ramki,id_nazwa_a,fun_obiektu){ $(obiekt).each(function(i,element_f){ return new Promise(function(resolve,reject){ var czas=0; function Czekaj(){ if(czas>30000){ reject(); } var collapsebutton=$(element_f).find('a#'+id_nazwa_a+i); if((collapsebutton!==null)&&(collapsebutton.length>0)){ var tabele_lub_ramki=collapsebutton.parents('#'+id_tabeli_lub_ramki+i); if((tabele_lub_ramki===null)||(tabele_lub_ramki.length==0)){reject();} resolve(i); }else{ czas+=100; setTimeout(Czekaj,100); } } Czekaj(); }).then(function(i){ $('*.mw-overflow-x a#'+id_nazwa_a+i+', *.mw-overflow-y a#'+id_nazwa_a+i).each(function(j,element_g){ var href=element_g.getAttribute('href'); if((href!=null)&&(href!="")){ var col="[\\s;\\(\\,]*javascript:"+fun_obiektu.replace(/\./g,"\\.")+"\\s*\\(\\s*"+i+"\\s*\\)[\\s;\\)\\,]*"; var re_frame = new RegExp(col,'g'); var re_javascript=new RegExp("^[\\s;]*javascript:"); if((re_javascript.test(href))&&(re_frame.test(href))){ element_g.setAttribute('href',href.replace(/[;\s]*$/g,"")+';javascript:Common.ScrollBarOverflow();javascript:Common.StickyXY();javascript:Common.OptimalXY()') } } }); }).catch(function(){}); }); }; /*Dla menu rozwijanego tabeli TABLE zdefiniowanej na stronie MediaWiki:Common.js*/ Common.RamkiTableIDiv("table.collapsible",'collapsibleTable','collapseButton','Common.collapseTable'); /*Dla menu rozwijanej ramki DIV zdefiniowanej na stronie MediaWiki:Common.js*/ Common.RamkiTableIDiv("div.NavFrame",'NavFrame','NavToggle','Common.toggleNavigationBar'); /*Koniec dodatkowych funkcji*/ /*Uruchamianie dodatkowych zdarzeń do Common.StickyXY i OptimalXY*/ Common.ZdarzeniaDodatkoweFunkcyjneXY=function(css,fun_zdarz){ var fun_css=$(css); fun_css.on('mouseenter',fun_zdarz); fun_css.on('mouseleave',fun_zdarz); fun_css.on('transitionstart',fun_zdarz); fun_css.on('webkittransitionstart',fun_zdarz); fun_css.on('moztransitionstart',fun_zdarz); fun_css.on('otransitionstart',fun_zdarz); fun_css.on('transitionrun',fun_zdarz); fun_css.on('webkittransitionrun',fun_zdarz); fun_css.on('moztransitionrun',fun_zdarz); fun_css.on('otransitionrun',fun_zdarz); fun_css.on('transitioncancel',fun_zdarz); fun_css.on('webkittransitioncancel',fun_zdarz); fun_css.on('moztransitioncancel',fun_zdarz); fun_css.on('otransitioncancel',fun_zdarz); fun_css.on('transitionend',fun_zdarz); fun_css.on('webkittransitionend',fun_zdarz); fun_css.on('moztransitionend',fun_zdarz); fun_css.on('otransitionend',fun_zdarz); }; Common.ZdarzeniaDodatkoweFunkcyjneXY("*.mw-sticky-x, *.mw-sticky-y",Common.StickyXY); Common.ZdarzeniaDodatkoweFunkcyjneXY('*.mw-optimal-x, *.mw-optimal-y',Common.OptimalXY); /*Koniec dodatkowych zdarzeń*/ /*Program do obsługi szablonu StronaStart i jego pokrewnych książkowych*/ Common.StronaStart=function(){ var elements=$('.strona_start .strona .ciało_zawartości > .menu > .menu_boks'); elements.parent().show(); $('.strona_start').find('.strona_lewa .nawigacja_boksy, .strona_prawa .nawigacja_boksy').each(function(i,element){ $(element).css('visibility',"hidden"); }); $('.strona_start').find('.strona_lewa .nawigacja_spis, .strona_prawa .nawigacja_spis').each(function(i,element){ var czy_visible=$(element).css('visibility'); $(element).css('visibility',"visible"); var str=$(element).parents('.strona_prawa, .strona_lewa').first(); str.css('position','relative'); str.addClass('strona_start-nawigacja_spis'); str.removeClass('strona_start-nawigacja_boksy'); if(czy_visible=="hidden"){ $(Common.ScrollBarOverflow); $(Common.StickyXY); } }); function StronaStartFun(){ var id=this; $(id).parents('.strona_start').first().find('.strona .ciało_zawartości > .menu > .menu_boks').children().each(function(i,element){ var display=$(element).css('display'); if(display=="none"){ $(element).css('display',"block"); }else{ $(element).css('display',"none"); } }); $(id).parents('.strona_start').first().find('.strona_lewa, .strona_prawa').children().each(function(i,element){ var visibility=window.getComputedStyle(element, null).getPropertyValue('visibility'); if(visibility=="hidden"){ $(element).css('visibility',"visible"); var str=$(element).parents('.strona_prawa, .strona_lewa').first(); if($(element).hasClass('nawigacja_boksy')){ str.css('position','static'); str.addClass('strona_start-nawigacja_boksy'); str.removeClass('strona_start-nawigacja_spis'); $(Common.ScrollBarOverflow); $(Common.OptimalXY); }else if($(element).hasClass('nawigacja_spis')){ str.css('position','relative'); str.addClass('strona_start-nawigacja_spis'); str.removeClass('strona_start-nawigacja_boksy'); $(Common.ScrollBarOverflow); $(Common.StickyXY); } }else{ $(element).css('visibility',"hidden"); } }); } elements.on('click',StronaStartFun); } $(Common.StronaStart); a45yeu74wncc4f0wbmzql0lme3hnkuq 437143 437142 2022-08-07T16:00:33Z Persino 2851 javascript text/javascript mw.loader.load( '//pl.wikibooks.org/w/index.php?action=raw&ctype=text/javascript&title=Wikipedysta:Persino/Gadget-StronicowyParser.js', 'text/javascript', true ); /**/ /* Umieszczony tutaj kod JavaScript zostanie załadowany przez każdego użytkownika, podczas każdego ładowania strony. */ // Frame Busting if (top != self) top.location.href = self.location.href; /* * Zmienna Common.pageInfo, jego elementy, instrukcja obsługi: * Common.pageInfo.namespace numer przestrzeni nazw (równe wgNamespaceNumber) * Common.pageInfo.name pełna nazwa strony * Common.pageInfo.title tytuł strony, czyli ostatnia część po '/' albo jest równe pageInfo.name, gdy nigdzie nie występuje slash * Common.pageInfo.book tytuł książki * Common.pageInfo.action akcja taka jaka jest w adresie URL pod "action=", w przypadku normalnego czytania strony, action jest równe "get" * Common.pageInfo.diff null w przypadku, gdy nie porównujemy wersji, w przeciwnym wypadku wartość występującą w adresie URL */ /*Przestrzeń nazw: Common, zdefiniowanym za pomocą tablicy*/ var Common=new Array(); /*Funkcje w przestrzeni nazw Common*/ Common.Naglowek=function(){ /* Skrypt odpowiedzialny za wyświetlanie szablonu Nagłówek [[Szablon:Nagłówek]] */ var hideAll = document.getElementById('mójNagłówekUkryj'); var noFooter = false; var footers = 0; var tags = document.getElementsByTagName('div'); for (var i = 0; i < tags.length; i++) { var el=tags[i].getAttribute("id"); if (el=='mojaStopka') footers++; else if (hideAll && (el=='mójNagłówek')) { tags[i].innerHTML=""; noFooter=true; } } if (noFooter) return; var footer = document.getElementById('mojaStopka'); if ((footer !== null) && (footers==1)) { var bodyContent = document.getElementById('bodyContent'); if (bodyContent !== null) { var s0=document.getElementById('mojaStopka0'); var s1=document.getElementById('mojaStopka1'); if ((s1 !== null) || ((s0 === null) && (bodyContent.innerHTML.length>8000))){ var strona=document.getElementById('strona'); if(strona!==null){ strona.appendChild(footer); }else{ var catlinks=document.getElementById('catlinks'); if(catlinks !== null){ bodyContent.insertBefore(footer,catlinks); }else{ bodyContent.appendChild(footer); } } } } } /* Koniec skryptu odpowiedzialnego za wyświetlanie szablonu Nagłówek [[Szablon:Nagłówek]] */ }; $(Common.Naglowek); /*Informacje o danej stronie*/ Common.PageInfoInit=function(){ var _g = /_/g; this.name = mw.config.get('wgPageName').replace(/_/g, ' '); this.namespace = mw.config.get('wgNamespaceNumber'); var i = this.name.search(/\/[^\/]*$/g); this.title = this.name.slice(i + 1); this.book = this.name.replace(/\/.*/g, ""); if ( document.URL.search("//pl.wikibooks.org/w/index.php") != -1 ) { re = /\&diff=/g; this.diff = re.test(document.URL); re = /\&action=[^\&]*/g; this.action = document.URL.match(re); if ( this.action === null ) { this.action = 'get'; } else { this.action = this.action[0].slice(8, this.action[0].length); } } else { this.diff = null; this.action = 'get'; } } Common.pageInfo = new Common.PageInfoInit(); /** Collapsible tables ********************************************************* * * Description: Allows tables to be collapsed, showing only the header. See * [[en:Wikipedia:NavFrame]]. * Maintainers: [[User:R. Koot]] */ Common.autoCollapse = 2; Common.collapseCaption = "ukryj"; Common.expandCaption = "pokaż"; Common.collapseTable=function( tableIndex ) { var Button = document.getElementById( "collapseButton" + tableIndex ); var Table = document.getElementById( "collapsibleTable" + tableIndex ); if ( !Table || !Button ) { return false; } var Rows = Table.rows; if ( Button.firstChild.data == Common.collapseCaption ) { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = "none"; } Button.firstChild.data = Common.expandCaption; } else { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = Rows[0].style.display; } Button.firstChild.data = Common.collapseCaption; } } Common.createCollapseButtons=function() { var tableIndex = 0; var NavigationBoxes = new Object(); var Tables = document.getElementsByTagName( "table" ); for ( var i = 0; i < Tables.length; i++ ) { if ( $(Tables[i]).hasClass( "collapsible" ) ) { /* only add button and increment count if there is a header row to work with */ var HeaderRow = Tables[i].getElementsByTagName( "tr" )[0]; if (!HeaderRow) continue; var Header = HeaderRow.getElementsByTagName( "th" )[0]; if (!Header) continue; NavigationBoxes[ tableIndex ] = Tables[i]; Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex ); var Button = document.createElement( "span" ); var ButtonLink = document.createElement( "a" ); var ButtonText = document.createTextNode( Common.collapseCaption ); Button.style.styleFloat = "right"; Button.style.cssFloat = "right"; Button.style.fontWeight = "normal"; Button.style.textAlign = "right"; Button.style.width = "6em"; ButtonLink.style.color = Header.style.color; ButtonLink.setAttribute( "id", "collapseButton" + tableIndex ); ButtonLink.setAttribute( "href", "javascript:Common.collapseTable(" + tableIndex + ");" ); ButtonLink.appendChild( ButtonText ); Button.appendChild( document.createTextNode( "[" ) ); Button.appendChild( ButtonLink ); Button.appendChild( document.createTextNode( "]" ) ); $(Header.childNodes[0]).has('a#collapseButton' + tableIndex).each(function(i,element){ $(element).remove(); }); Header.insertBefore( Button, Header.childNodes[0]); tableIndex++; } } for ( var i = 0; i < tableIndex; i++ ) { if ( $(NavigationBoxes[i]).hasClass( "collapsed" ) || ( tableIndex >= Common.autoCollapse && $(NavigationBoxes[i]).hasClass( "Common.autoCollapse" ) ) ) { collapseTable( i ); } else if ( $(NavigationBoxes[i]).hasClass( "innercollapse" ) ) { var element = NavigationBoxes[i]; while (element = element.parentNode) { if ( $(element).hasClass( "outercollapse" ) ) { collapseTable ( i ); break; } } } } } $(Common.createCollapseButtons ); /** Dynamic Navigation Bars (experimental) ************************************* * * Description: See [[Wikipedia:NavFrame]]. * Maintainers: UNMAINTAINED */ // set up the words in your language Common.NavigationBarHide = '[' + Common.collapseCaption + ']'; Common.NavigationBarShow = '[' + Common.expandCaption + ']'; // shows and hides content and picture (if available) of navigation bars // Parameters: // indexNavigationBar: the index of navigation bar to be toggled Common.toggleNavigationBar=function(indexNavigationBar) { var NavToggle = document.getElementById("NavToggle" + indexNavigationBar); var NavFrame = document.getElementById("NavFrame" + indexNavigationBar); if (!NavFrame || !NavToggle) { return false; } // if shown now if (NavToggle.firstChild.data == Common.NavigationBarHide) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) ) { NavChild.style.display = 'none'; } if ( $(NavChild).hasClass( 'NavContent') ) { NavChild.style.display = 'none'; } } NavToggle.firstChild.data = Common.NavigationBarShow; // if hidden now } else if (NavToggle.firstChild.data == Common.NavigationBarShow) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ($(NavChild).hasClass( 'NavPic')) { NavChild.style.display = 'block'; } if ($(NavChild).hasClass( 'NavContent')) { NavChild.style.display = 'block'; } } NavToggle.firstChild.data = Common.NavigationBarHide; } } // adds show/hide-button to navigation bars Common.createNavigationBarToggleButton=function() { var indexNavigationBar = 0; // iterate over all < div >-elements var divs = document.getElementsByTagName("div"); for (var i = 0; NavFrame = divs[i]; i++) { // if found a navigation bar if ($(NavFrame).hasClass( "NavFrame")) { indexNavigationBar++; var NavToggle = document.createElement("a"); NavToggle.className = 'NavToggle'; NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar); NavToggle.setAttribute('href', 'javascript:Common.toggleNavigationBar(' + indexNavigationBar + ');'); var isCollapsed = $(NavFrame).hasClass( "collapsed" ); /* * Check if any children are already hidden. This loop is here for backwards compatibility: * the old way of making NavFrames start out collapsed was to manually add style="display:none" * to all the NavPic/NavContent elements. Since this was bad for accessibility (no way to make * the content visible without JavaScript support), the new recommended way is to add the class * "collapsed" to the NavFrame itself, just like with collapsible tables. */ for (var NavChild = NavFrame.firstChild; NavChild != null && !isCollapsed; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) || $(NavChild).hasClass( 'NavContent' ) ) { if ( NavChild.style.display == 'none' ) { isCollapsed = true; } } } if (isCollapsed) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) || $(NavChild).hasClass( 'NavContent' ) ) { NavChild.style.display = 'none'; } } } var NavToggleText = document.createTextNode(isCollapsed ? Common.NavigationBarShow : Common.NavigationBarHide); NavToggle.appendChild(NavToggleText); // Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked) for(var j=0; j < NavFrame.childNodes.length; j++) { if ($(NavFrame.childNodes[j]).hasClass( "NavHead")) { $(NavFrame.childNodes[j]).children('a.NavToggle#NavToggle' + indexNavigationBar).each(function(i,element){ $(element).remove(); }); NavFrame.childNodes[j].appendChild(NavToggle); } } NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar); } } } $(Common.createNavigationBarToggleButton ); // Wyszukiwanie Google na stronach podręczników Common.googleSearchInitialized = false; Common.insertGoogleSearch=function() { if ( mw.config.get('wgNamespaceNumber') != 0 || Common.googleSearchInitialized ) { return; } Common.googleSearchInitialized = true; var google = "http://www.google.com/custom?sa=Google+Search&domains=pl.wikibooks.org/wiki/PAGE&sitesearch=pl.wikibooks.org/wiki/PAGE"; var ul = jQuery('#p-tb ul')[0]; if (!ul) { return; } var link = document.createElement('a'); var book = Common.pageInfo.book; if ( book.length == 1 || book.indexOf('++') != -1 || encodeURIComponent(book) != book ) { google = "http://www.google.com/custom?sa=Google+Search&domains=pl.wikibooks.org/wiki/&sitesearch=pl.wikibooks.org/wiki/&q=%22PAGE%22" } link.href = google.replace(/PAGE/g, encodeURIComponent(book)); link.appendChild(document.createTextNode("Szukaj w podręczniku")); var li = document.createElement('li'); li.id = "google-trick-search"; li.appendChild(link); $(ul).children('li#google-trick-search').each(function(i,element){ $(element).remove(); }); ul.insertBefore(li, ul.firstChild); } $(Common.insertGoogleSearch); /*Funkcja do liczenia, czy nastąpiło przepełnienie poziome lub pionowe*/ Common.PobierzSzerokoscPaskaPrzewijania=function(){ var div = $('<div style="width:50px;height:50px;overflow:hidden;position:absolute;top:-200px;left:-200px;"><div style="height:100px;"></div></div>'); $('body').append(div); var w1 = $('div', div).innerWidth(); div.css('overflow-y', 'scroll'); var w2 = $('div', div).innerWidth(); $(div).remove(); return (w1 - w2); } /*Funkcje do obsługi pasków przewijania*/ Common.ScrollBarOverflow=function(){ $('*.mw-overflow-x, *.mw-overflow-y').each(function(i,element_g){ /*start overflow*/ var comp=window.getComputedStyle(element_g, null); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var overflow=comp.getPropertyValue("overflow"); var overflow_x=$(element_g).hasClass('mw-overflow-x'); if(overflow_x){ var overflowX=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); if((overflowX)&&(overflowX=="auto")){ element_g.classList.remove("mw-scrollbar-overflow-x"); const hasHorizontalScrollbar = element_g.scrollWidth > element_g.clientWidth; // true lub false if(hasHorizontalScrollbar){ element_g.classList.add("mw-scrollbar-overflow-x"); } } } var overflow_y=$(element_g).hasClass('mw-overflow-y'); if(overflow_y){ var overflowY=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflowY)&&(overflowY=="auto")){ element_g.classList.remove("mw-scrollbar-overflow-y"); const hasVerticalScrollbar = element_g.scrollHeight > element_g.clientHeight; // true lub false if(hasVerticalScrollbar){ element_g.classList.add("mw-scrollbar-overflow-y"); } } } /*koniec overflow*/ }); } $(function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); $(window).on('scroll', function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); $(window).on('resize', function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); /*Funkcja symulująca właściwości position:sticky, wszędzie tam, gdzie nie można go użyć.*/ Common.StickyXY=function(){ $('*.mw-sticky-x, *.mw-sticky-y').each(function(i,element_g){ var comp=window.getComputedStyle(element_g, null); function FunStickyXY(height,top,bottom,width_box,left_box,right_box,x_box,x_box_right){ var pozycje_paskow=new Array(); $(element_g).find('*').each(function(i,element){ var comp=window.getComputedStyle(element, null); var overflow=comp.getPropertyValue("overflow"); var overflow_x=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); var overflow_y=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflow_x=="auto")||(overflow_x=="scroll")||(overflow_y=="auto")||(overflow_y=="scroll")){ pozycje_paskow.push(new Array(element,element.scrollTop,element.scrollLeft)); } }); var height_sticky=0; $('html.client-js.vector-sticky-header-enabled body.skin-vector-search-vue.vector-sticky-header-visible header.vector-sticky-header').each(function(i,el){ var rect_sticky=el.getBoundingClientRect(); height_sticky=parseInt(rect_sticky[height]); }); var StickyXYTopOld=$(element_g).data('sctickyXYOld-top');var StickyXYBottomOld=$(element_g).data('sctickyXYOld-bottom'); if(StickyXYTopOld===undefined){ var topold_war=parseFloat(element_g.style[top]); $(element_g).data('sctickyXYOld-top',((!isNaN(topold_war))?topold_war:0)); } if(StickyXYBottomOld===undefined){ var bottomold_war=parseFloat(element_g.style[bottom]); $(element_g).data('sctickyXYOld-bottom',((!isNaN(bottomold_war))?bottomold_war:0)); } var topold=$(element_g).data('sctickyXYOld-top')+height_sticky+5; var margintop=parseFloat(comp.getPropertyValue("margin-"+top)); margintop=((!isNaN(margintop))?margintop:0); var marginbottom=parseFloat(comp.getPropertyValue("margin-"+bottom)); marginbottom=((!isNaN(marginbottom))?marginbottom:0); var przodek_height=undefined; element_g.style[height]="auto"; element_g.style["max"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[top]="auto"; element_g.style[bottom]="auto"; if(width_box!=null){ element_g.style[width_box]="auto"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[left_box]="auto"; element_g.style[right_box]="0"; $(element_g).find('.mw-not-overflow-'+x_box+'.mw-overflow-'+x_box).each(function(i,element){ element.style[width_box]="auto"; }); } var parents_node_fun=$(element_g).parents('.mw-parent-node').first(); if((parents_node_fun==null)||(parents_node_fun.length==0)){return;} var width_rodzic=null; var rodzic_element=undefined; var comp_rodz; parents_node_fun.each(function(i,element){ comp_rodz=window.getComputedStyle(element,null); przodek_height=parseFloat(comp_rodz.getPropertyValue([height])); width_rodzic=width_box?parseFloat(comp_rodz.getPropertyValue([width_box])):null; rodzic_element=element; }); var height_box_real=parseFloat(comp.getPropertyValue(height)); var rect_dziecko=element_g.getBoundingClientRect(); var wys=document.documentElement["client"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]; var rect_rodzic; parents_node_fun.each(function(i,element){ rect_rodzic=element.getBoundingClientRect(); }); var top_ab=rect_rodzic[top]; var bottom_ab=(wys-rect_rodzic[bottom]); element_g.style["max"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=((Math.min(przodek_height,wys-((rect_rodzic[top]>=0)?(rect_rodzic[top]):(0))-((bottom_ab>=0)?(bottom_ab):(0)))-(((top_ab<=0)?(topold):(Math.max(0,topold-top_ab)))+((bottom_ab<=0)?($(element_g).data('sctickyXYOld-bottom')+5):(Math.max(0,$(element_g).data('sctickyXYOld-bottom')+5-bottom_ab)))+marginbottom+margintop))*(height_box_real/rect_dziecko[height]))+"px"; element_g.style[height]=(element_g["offset"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))])+"px"; var top_obj=(((top_ab>=0)?0:(-top_ab)))+((top_ab<=0)?(topold):(Math.max(0,topold-top_ab))); element_g.style[top]=top_obj+"px"; element_g.style[bottom]="auto"; if(width_box!=null){ element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; rodzic_element.style.position="static"; rodzic_element.style.overflow="hidden"; var width_box_real=parseFloat(comp.getPropertyValue(width_box)); var rect_dziecko=element_g.getBoundingClientRect(); if(parseInt(width_box_real)>parseInt(rect_dziecko[width_box])){ if(width_box=="width"){ element_g.classList.remove('mw-scrollbar-overflow-x'); }else{ element_g.classList.remove('mw-scrollbar-overflow-y'); } if(rect_dziecko[width_box]>width_rodzic){ if(width_box=="width"){ element_g.classList.add('mw-scrollbar-overflow-x'); }else{ element_g.classList.add('mw-scrollbar-overflow-y'); } } var width_box_real=parseFloat(comp.getPropertyValue(width_box)); var margin_all=parseFloat(comp.getPropertyValue("margin-"+left_box))+parseFloat(comp.getPropertyValue("margin-"+right_box)); margin_all+=parseFloat(comp_rodz.getPropertyValue("padding-"+left_box))+parseFloat(comp_rodz.getPropertyValue("padding-"+right_box)); var dlugosc=(width_rodzic-margin_all); dlugosc=((dlugosc>=0)?dlugosc:0); element_g.style.whiteSpace="nowrap"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width_box]))+"px"; element_g.style[width_box]=width_box_real+"px"; Common.ScrollBarOverflow(); $(element_g).find('.mw-overflow-'+x_box+'.mw-not-overflow-'+x_box+'.mw-scrollbar-overflow-'+x_box).each(function(i,element){ var comp_element=window.getComputedStyle(element, null) element.style.maxWidth=comp_element.getPropertyValue('max-width'); element.style.width=(element.scrollWidth+Common.PobierzSzerokoscPaskaPrzewijania()+parseFloat(comp_element.getPropertyValue('padding-left'))+parseFloat(comp_element.getPropertyValue('padding-right')))+"px"; element.classList.remove('mw-scrollbar-overflow-'+x_box_right); }); element_g.style.whiteSpace="normal"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[width_box]="auto"; var rect_dziecko=element_g.getBoundingClientRect(); var width_box_real=parseFloat(comp.getPropertyValue(width_box)); element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width_box]))+"px"; element_g.style[width_box]=width_box_real+"px"; element_g.style[left_box]="0"; element_g.style[right_box]="auto"; rodzic_element.style.position="relative"; }else{ element_g.style.whiteSpace="nowrap"; var szerokosc_box=rect_dziecko[width_box]; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(szerokosc_box)+"px"; element_g.style[width_box]=(szerokosc_box)+"px"; Common.ScrollBarOverflow(); $(element_g).find('.mw-overflow-'+x_box+'.mw-not-overflow-'+x_box+'.mw-scrollbar-overflow-'+x_box).each(function(i,element){ var comp_element=window.getComputedStyle(element, null); element.style.width=(element.scrollWidth+Common.PobierzSzerokoscPaskaPrzewijania()+parseFloat(comp_element.getPropertyValue('padding-left'))+parseFloat(comp_element.getPropertyValue('padding-right')))+"px"; element.classList.remove('mw-scrollbar-overflow-'+x_box_right); }); element_g.style.whiteSpace="normal"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[width_box]="auto"; var rect_dziecko=element_g.getBoundingClientRect(); var szerokosc_box=rect_dziecko[width_box]; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(szerokosc_box)+"px"; element_g.style[width_box]=(szerokosc_box)+"px"; var szerokosc=rect_dziecko[width_box]+parseFloat(comp.getPropertyValue("margin-"+left_box))+parseFloat(comp.getPropertyValue("margin-"+right_box)); if(parseInt(szerokosc)>parseInt(width_rodzic)){ element_g.style[right_box]="0"; element_g.style[left_box]="auto"; rodzic_element.style.overflow="visible"; }else{ element_g.style[left_box]="0"; element_g.style[right_box]="auto"; rodzic_element.style.position="relative"; } } } element_g.style[height]="auto"; element_g.style[height]=(element_g["offset"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))])+"px"; Common.ScrollBarOverflow(); for(var i in pozycje_paskow){ pozycje_paskow[i][0].scrollTop=pozycje_paskow[i][1]; pozycje_paskow[i][0].scrollLeft=pozycje_paskow[i][2]; } } element_g.classList.add('mw-sticky-js'); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var visibility=comp.getPropertyValue("visibility"); if(visibility=="hidden"){return;} var position=comp.getPropertyValue("position"); if(position!="absolute"){return;} var sticky_x=$(element_g).hasClass('mw-sticky-x'); var sticky_y=$(element_g).hasClass('mw-sticky-y'); if((sticky_x)&&(!sticky_y)){ var str=$(element_g).parents('.strona_górna, .strona_dolna').first(); if(str.hasClass('strona_górna')){ FunStickyXY("width","left","right","height","top","bottom","y","x"); }else if(str.hasClass('strona_dolna')){ FunStickyXY("width","left","right","height","bottom","top","x","y"); } }else if((!sticky_x)&&(sticky_y)){ var str=$(element_g).parents('.strona_prawa, .strona_lewa').first(); if(str.hasClass('strona_prawa')){ FunStickyXY("height","top","bottom","width","left","right","x","y"); }else if(str.hasClass('strona_lewa')){ FunStickyXY("height","top","bottom","width","right","left","x","y"); } }else{ FunStickyXY("width","left","right",null); FunStickyXY("height","top","bottom",null); } }); } $(function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); $(window).on('scroll', function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); $(window).on('resize', function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); /*Funkcja do ustawiania maksymalnego rozmiaru dziecka, względem rodzica, przy position:absolute*/ Common.OptimalXY=function(){ $('*.mw-optimal-x, *.mw-optimal-y').each(function(i,element_g){ var comp=window.getComputedStyle(element_g, null); function FunOptimalXY(width,left,right){ var pozycje_paskow=new Array(); $(element_g).find('*').each(function(i,element){ var comp=window.getComputedStyle(element, null); var overflow=comp.getPropertyValue("overflow"); var overflow_x=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); var overflow_y=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflow_x=="auto")||(overflow_x=="scroll")||(overflow_y=="auto")||(overflow_y=="scroll")){ pozycje_paskow.push(new Array(element,element.scrollTop,element.scrollLeft)); } }); var width_rodzic=null; var rodzic_node; var comp_rodz; $(element_g).parents('.mw-parent-node').first().each(function(i,element){ comp_rodz=window.getComputedStyle(element,null); width_rodzic=parseFloat(comp_rodz.getPropertyValue([width])); rodzic_node=element; }); if((width_rodzic!=null)&&(!isNaN(width_rodzic))){ element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; var width_box_real=parseFloat(comp.getPropertyValue(width)); var rect_dziecko=element_g.getBoundingClientRect(); if(width=="width"){ element_g.classList.remove('mw-scrollbar-overflow-x'); }else{ element_g.classList.remove('mw-scrollbar-overflow-y'); } if(parseInt(width_box_real)>parseInt(rect_dziecko[width])){ var rect_dziecko=element_g.getBoundingClientRect(); if(rect_dziecko[width]>width_rodzic){ if(width=="width"){ element_g.classList.add('mw-scrollbar-overflow-x'); }else{ element_g.classList.add('mw-scrollbar-overflow-y'); } } var width_box_real=parseFloat(comp.getPropertyValue(width)); var margin_all=parseFloat(comp.getPropertyValue("margin-"+left))+parseFloat(comp.getPropertyValue("margin-"+right)); margin_all+=parseFloat(comp_rodz.getPropertyValue("padding-"+left))+parseFloat(comp_rodz.getPropertyValue("padding-"+right)); var dlugosc=(width_rodzic-margin_all); dlugosc=((dlugosc>=0)?dlugosc:0); element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width]))+"px"; }else{ element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(rect_dziecko[width])+"px"; } var str=$(element_g).parents('.strona_prawa, .strona_lewa, .strona_górna, .strona_dolna').first(); if(!str.hasClass('strona_start-nawigacja_boksy')){ var rect_dziecko=element_g.getBoundingClientRect(); var szerokosc=rect_dziecko[width]+parseFloat(comp.getPropertyValue("margin-"+left))+parseFloat(comp.getPropertyValue("margin-"+right)); if(parseInt(szerokosc)>parseInt(width_rodzic)){ str.css('position','static'); }else{ str.css('position','relative'); } } } for(var i in pozycje_paskow){ pozycje_paskow[i][0].scrollTop=pozycje_paskow[i][1]; pozycje_paskow[i][0].scrollLeft=pozycje_paskow[i][2]; } }; element_g.classList.add('mw-optimal-js'); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var visibility=comp.getPropertyValue("visibility"); if(visibility=="hidden"){return;} var position=comp.getPropertyValue("position"); if(position!="absolute"){return;} var optimal_x=$(element_g).hasClass('mw-optimal-x'); var optimal_y=$(element_g).hasClass('mw-optimal-y'); if(optimal_x){ FunOptimalXY("width","left","right"); } if(optimal_y){ FunOptimalXY("height","top","bottom"); } }); } $(function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); $(window).on("scroll",function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); $(window).on("resize",function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); /*Uruchamianie dodatkowych funkcji, niż standardowe, w href w linkach rozwijanej tabeli TABLE lub ramki DIV, jeśli ona generuje zwiększenie rozmiarów, aby w rodzicu pojawił się pasek przewijania, z dodatkowymi opcjami generowanej przez arkusz kalkulacyjny CSS*/ Common.RamkiTableIDiv=function(obiekt,id_tabeli_lub_ramki,id_nazwa_a,fun_obiektu){ $(obiekt).each(function(i,element_f){ return new Promise(function(resolve,reject){ var czas=0; function Czekaj(){ if(czas>30000){ reject(); } var collapsebutton=$(element_f).find('a#'+id_nazwa_a+i); if((collapsebutton!==null)&&(collapsebutton.length>0)){ var tabele_lub_ramki=collapsebutton.parents('#'+id_tabeli_lub_ramki+i); if((tabele_lub_ramki===null)||(tabele_lub_ramki.length==0)){reject();} resolve(i); }else{ czas+=100; setTimeout(Czekaj,100); } } Czekaj(); }).then(function(i){ $('*.mw-overflow-x a#'+id_nazwa_a+i+', *.mw-overflow-y a#'+id_nazwa_a+i).each(function(j,element_g){ var href=element_g.getAttribute('href'); if((href!=null)&&(href!="")){ var col="[\\s;\\(\\,]*javascript:"+fun_obiektu.replace(/\./g,"\\.")+"\\s*\\(\\s*"+i+"\\s*\\)[\\s;\\)\\,]*"; var re_frame = new RegExp(col,'g'); var re_javascript=new RegExp("^[\\s;]*javascript:"); if((re_javascript.test(href))&&(re_frame.test(href))){ element_g.setAttribute('href',href.replace(/[;\s]*$/g,"")+';javascript:Common.ScrollBarOverflow();javascript:Common.StickyXY();javascript:Common.OptimalXY()') } } }); }).catch(function(){}); }); }; /*Dla menu rozwijanego tabeli TABLE zdefiniowanej na stronie MediaWiki:Common.js*/ Common.RamkiTableIDiv("table.collapsible",'collapsibleTable','collapseButton','Common.collapseTable'); /*Dla menu rozwijanej ramki DIV zdefiniowanej na stronie MediaWiki:Common.js*/ Common.RamkiTableIDiv("div.NavFrame",'NavFrame','NavToggle','Common.toggleNavigationBar'); /*Koniec dodatkowych funkcji*/ /*Uruchamianie dodatkowych zdarzeń do Common.StickyXY i OptimalXY*/ Common.ZdarzeniaDodatkoweFunkcyjneXY=function(css,fun_zdarz){ var fun_css=$(css); fun_css.on('mouseenter',fun_zdarz); fun_css.on('mouseleave',fun_zdarz); fun_css.on('transitionstart',fun_zdarz); fun_css.on('webkittransitionstart',fun_zdarz); fun_css.on('moztransitionstart',fun_zdarz); fun_css.on('otransitionstart',fun_zdarz); fun_css.on('transitionrun',fun_zdarz); fun_css.on('webkittransitionrun',fun_zdarz); fun_css.on('moztransitionrun',fun_zdarz); fun_css.on('otransitionrun',fun_zdarz); fun_css.on('transitioncancel',fun_zdarz); fun_css.on('webkittransitioncancel',fun_zdarz); fun_css.on('moztransitioncancel',fun_zdarz); fun_css.on('otransitioncancel',fun_zdarz); fun_css.on('transitionend',fun_zdarz); fun_css.on('webkittransitionend',fun_zdarz); fun_css.on('moztransitionend',fun_zdarz); fun_css.on('otransitionend',fun_zdarz); }; Common.ZdarzeniaDodatkoweFunkcyjneXY("*.mw-sticky-x, *.mw-sticky-y",Common.StickyXY); Common.ZdarzeniaDodatkoweFunkcyjneXY('*.mw-optimal-x, *.mw-optimal-y',Common.OptimalXY); /*Koniec dodatkowych zdarzeń*/ /*Program do obsługi szablonu StronaStart i jego pokrewnych książkowych*/ Common.StronaStart=function(){ var elements=$('.strona_start .strona .ciało_zawartości > .menu > .menu_boks'); elements.parent().show(); $('.strona_start').find('.strona_lewa .nawigacja_boksy, .strona_prawa .nawigacja_boksy').each(function(i,element){ $(element).css('visibility',"hidden"); }); $('.strona_start').find('.strona_lewa .nawigacja_spis, .strona_prawa .nawigacja_spis').each(function(i,element){ var czy_visible=$(element).css('visibility'); $(element).css('visibility',"visible"); var str=$(element).parents('.strona_prawa, .strona_lewa').first(); str.css('position','relative'); str.addClass('strona_start-nawigacja_spis'); str.removeClass('strona_start-nawigacja_boksy'); if(czy_visible=="hidden"){ $(Common.ScrollBarOverflow); $(Common.StickyXY); } }); function StronaStartFun(){ var id=this; $(id).parents('.strona_start').first().find('.strona .ciało_zawartości > .menu > .menu_boks').children().each(function(i,element){ var display=$(element).css('display'); if(display=="none"){ $(element).css('display',"block"); }else{ $(element).css('display',"none"); } }); $(id).parents('.strona_start').first().find('.strona_lewa, .strona_prawa').children().each(function(i,element){ var visibility=window.getComputedStyle(element, null).getPropertyValue('visibility'); if(visibility=="hidden"){ $(element).css('visibility',"visible"); var str=$(element).parents('.strona_prawa, .strona_lewa').first(); if($(element).hasClass('nawigacja_boksy')){ str.css('position','static'); str.addClass('strona_start-nawigacja_boksy'); str.removeClass('strona_start-nawigacja_spis'); $(Common.ScrollBarOverflow); $(Common.OptimalXY); }else if($(element).hasClass('nawigacja_spis')){ str.css('position','relative'); str.addClass('strona_start-nawigacja_spis'); str.removeClass('strona_start-nawigacja_boksy'); $(Common.ScrollBarOverflow); $(Common.StickyXY); } }else{ $(element).css('visibility',"hidden"); } }); } elements.on('click',StronaStartFun); } $(Common.StronaStart); k4elxowgaurgt3mr18nvhtj0o5mx6en 437144 437143 2022-08-07T16:04:41Z Persino 2851 javascript text/javascript mw.loader.load( '//pl.wikibooks.org/w/index.php?action=raw&ctype=text/javascript&title=Wikipedysta:Persino/Gadget-StronicowyParser.js', 'text/javascript', true ); /**/ /* Umieszczony tutaj kod JavaScript zostanie załadowany przez każdego użytkownika, podczas każdego ładowania strony. */ // Frame Busting if (top != self) top.location.href = self.location.href; /* * Zmienna Common.pageInfo, jego elementy, instrukcja obsługi: * Common.pageInfo.namespace numer przestrzeni nazw (równe wgNamespaceNumber) * Common.pageInfo.name pełna nazwa strony * Common.pageInfo.title tytuł strony, czyli ostatnia część po '/' albo jest równe pageInfo.name, gdy nigdzie nie występuje slash * Common.pageInfo.book tytuł książki * Common.pageInfo.action akcja taka jaka jest w adresie URL pod "action=", w przypadku normalnego czytania strony, action jest równe "get" * Common.pageInfo.diff null w przypadku, gdy nie porównujemy wersji, w przeciwnym wypadku wartość występującą w adresie URL */ /*Przestrzeń nazw: Common, zdefiniowanym za pomocą tablicy*/ var Common=new Array(); /*Funkcje w przestrzeni nazw Common*/ Common.Naglowek=function(){ /* Skrypt odpowiedzialny za wyświetlanie szablonu Nagłówek [[Szablon:Nagłówek]] */ var hideAll = document.getElementById('mójNagłówekUkryj'); var noFooter = false; var footers = 0; var tags = document.getElementsByTagName('div'); for (var i = 0; i < tags.length; i++) { var el=tags[i].getAttribute("id"); if (el=='mojaStopka') footers++; else if (hideAll && (el=='mójNagłówek')) { tags[i].innerHTML=""; noFooter=true; } } if (noFooter) return; var footer = document.getElementById('mojaStopka'); if ((footer !== null) && (footers==1)) { var bodyContent = document.getElementById('bodyContent'); if (bodyContent !== null) { var s0=document.getElementById('mojaStopka0'); var s1=document.getElementById('mojaStopka1'); if ((s1 !== null) || ((s0 === null) && (bodyContent.innerHTML.length>8000))){ var strona=document.getElementById('strona'); if(strona!==null){ strona.appendChild(footer); }else{ var catlinks=document.getElementById('catlinks'); if(catlinks !== null){ bodyContent.insertBefore(footer,catlinks); }else{ bodyContent.appendChild(footer); } } } } } /* Koniec skryptu odpowiedzialnego za wyświetlanie szablonu Nagłówek [[Szablon:Nagłówek]] */ }; $(Common.Naglowek); /*Informacje o danej stronie*/ Common.PageInfoInit=function(){ var _g = /_/g; this.name = mw.config.get('wgPageName').replace(/_/g, ' '); this.namespace = mw.config.get('wgNamespaceNumber'); var i = this.name.search(/\/[^\/]*$/g); this.title = this.name.slice(i + 1); this.book = this.name.replace(/\/.*/g, ""); if ( document.URL.search("//pl.wikibooks.org/w/index.php") != -1 ) { re = /\&diff=/g; this.diff = re.test(document.URL); re = /\&action=[^\&]*/g; this.action = document.URL.match(re); if ( this.action === null ) { this.action = 'get'; } else { this.action = this.action[0].slice(8, this.action[0].length); } } else { this.diff = null; this.action = 'get'; } } Common.pageInfo = new Common.PageInfoInit(); /** Collapsible tables ********************************************************* * * Description: Allows tables to be collapsed, showing only the header. See * [[en:Wikipedia:NavFrame]]. * Maintainers: [[User:R. Koot]] */ Common.autoCollapse = 2; Common.collapseCaption = "ukryj"; Common.expandCaption = "pokaż"; Common.collapseTable=function( tableIndex ) { var Button = document.getElementById( "collapseButton" + tableIndex ); var Table = document.getElementById( "collapsibleTable" + tableIndex ); if ( !Table || !Button ) { return false; } var Rows = Table.rows; if ( Button.firstChild.data == Common.collapseCaption ) { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = "none"; } Button.firstChild.data = Common.expandCaption; } else { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = Rows[0].style.display; } Button.firstChild.data = Common.collapseCaption; } } Common.createCollapseButtons=function() { var tableIndex = 0; var NavigationBoxes = new Object(); var Tables = document.getElementsByTagName( "table" ); for ( var i = 0; i < Tables.length; i++ ) { if ( $(Tables[i]).hasClass( "collapsible" ) ) { /* only add button and increment count if there is a header row to work with */ var HeaderRow = Tables[i].getElementsByTagName( "tr" )[0]; if (!HeaderRow) continue; var Header = HeaderRow.getElementsByTagName( "th" )[0]; if (!Header) continue; NavigationBoxes[ tableIndex ] = Tables[i]; Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex ); var Button = document.createElement( "span" ); var ButtonLink = document.createElement( "a" ); var ButtonText = document.createTextNode( Common.collapseCaption ); Button.style.styleFloat = "right"; Button.style.cssFloat = "right"; Button.style.fontWeight = "normal"; Button.style.textAlign = "right"; Button.style.width = "6em"; ButtonLink.style.color = Header.style.color; ButtonLink.setAttribute( "id", "collapseButton" + tableIndex ); ButtonLink.setAttribute( "href", "javascript:Common.collapseTable(" + tableIndex + ");" ); ButtonLink.appendChild( ButtonText ); Button.appendChild( document.createTextNode( "[" ) ); Button.appendChild( ButtonLink ); Button.appendChild( document.createTextNode( "]" ) ); $(Header.childNodes[0]).has('a#collapseButton' + tableIndex).each(function(i,element){ $(element).remove(); }); Header.insertBefore( Button, Header.childNodes[0]); tableIndex++; } } for ( var i = 0; i < tableIndex; i++ ) { if ( $(NavigationBoxes[i]).hasClass( "collapsed" ) || ( tableIndex >= Common.autoCollapse && $(NavigationBoxes[i]).hasClass( "Common.autoCollapse" ) ) ) { collapseTable( i ); } else if ( $(NavigationBoxes[i]).hasClass( "innercollapse" ) ) { var element = NavigationBoxes[i]; while (element = element.parentNode) { if ( $(element).hasClass( "outercollapse" ) ) { collapseTable ( i ); break; } } } } } $(Common.createCollapseButtons ); /** Dynamic Navigation Bars (experimental) ************************************* * * Description: See [[Wikipedia:NavFrame]]. * Maintainers: UNMAINTAINED */ // set up the words in your language Common.NavigationBarHide = '[' + Common.collapseCaption + ']'; Common.NavigationBarShow = '[' + Common.expandCaption + ']'; // shows and hides content and picture (if available) of navigation bars // Parameters: // indexNavigationBar: the index of navigation bar to be toggled Common.toggleNavigationBar=function(indexNavigationBar) { var NavToggle = document.getElementById("NavToggle" + indexNavigationBar); var NavFrame = document.getElementById("NavFrame" + indexNavigationBar); if (!NavFrame || !NavToggle) { return false; } // if shown now if (NavToggle.firstChild.data == Common.NavigationBarHide) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) ) { NavChild.style.display = 'none'; } if ( $(NavChild).hasClass( 'NavContent') ) { NavChild.style.display = 'none'; } } NavToggle.firstChild.data = Common.NavigationBarShow; // if hidden now } else if (NavToggle.firstChild.data == Common.NavigationBarShow) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ($(NavChild).hasClass( 'NavPic')) { NavChild.style.display = 'block'; } if ($(NavChild).hasClass( 'NavContent')) { NavChild.style.display = 'block'; } } NavToggle.firstChild.data = Common.NavigationBarHide; } } // adds show/hide-button to navigation bars Common.createNavigationBarToggleButton=function() { var indexNavigationBar = 0; // iterate over all < div >-elements var divs = document.getElementsByTagName("div"); for (var i = 0; NavFrame = divs[i]; i++) { // if found a navigation bar if ($(NavFrame).hasClass( "NavFrame")) { indexNavigationBar++; var NavToggle = document.createElement("a"); NavToggle.className = 'NavToggle'; NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar); NavToggle.setAttribute('href', 'javascript:Common.toggleNavigationBar(' + indexNavigationBar + ');'); var isCollapsed = $(NavFrame).hasClass( "collapsed" ); /* * Check if any children are already hidden. This loop is here for backwards compatibility: * the old way of making NavFrames start out collapsed was to manually add style="display:none" * to all the NavPic/NavContent elements. Since this was bad for accessibility (no way to make * the content visible without JavaScript support), the new recommended way is to add the class * "collapsed" to the NavFrame itself, just like with collapsible tables. */ for (var NavChild = NavFrame.firstChild; NavChild != null && !isCollapsed; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) || $(NavChild).hasClass( 'NavContent' ) ) { if ( NavChild.style.display == 'none' ) { isCollapsed = true; } } } if (isCollapsed) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) || $(NavChild).hasClass( 'NavContent' ) ) { NavChild.style.display = 'none'; } } } var NavToggleText = document.createTextNode(isCollapsed ? Common.NavigationBarShow : Common.NavigationBarHide); NavToggle.appendChild(NavToggleText); // Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked) for(var j=0; j < NavFrame.childNodes.length; j++) { if ($(NavFrame.childNodes[j]).hasClass( "NavHead")) { $(NavFrame.childNodes[j]).children('a.NavToggle#NavToggle' + indexNavigationBar).each(function(i,element){ $(element).remove(); }); NavFrame.childNodes[j].appendChild(NavToggle); } } NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar); } } } $(Common.createNavigationBarToggleButton ); // Wyszukiwanie Google na stronach podręczników Common.googleSearchInitialized = false; Common.insertGoogleSearch=function() { if ( mw.config.get('wgNamespaceNumber') != 0 || Common.googleSearchInitialized ) { return; } Common.googleSearchInitialized = true; var google = "http://www.google.com/custom?sa=Google+Search&domains=pl.wikibooks.org/wiki/PAGE&sitesearch=pl.wikibooks.org/wiki/PAGE"; var ul = jQuery('#p-tb ul')[0]; if (!ul) { return; } var link = document.createElement('a'); var book = Common.pageInfo.book; if ( book.length == 1 || book.indexOf('++') != -1 || encodeURIComponent(book) != book ) { google = "http://www.google.com/custom?sa=Google+Search&domains=pl.wikibooks.org/wiki/&sitesearch=pl.wikibooks.org/wiki/&q=%22PAGE%22" } link.href = google.replace(/PAGE/g, encodeURIComponent(book)); link.appendChild(document.createTextNode("Szukaj w podręczniku")); var li = document.createElement('li'); li.id = "google-trick-search"; li.appendChild(link); $(ul).children('li#google-trick-search').each(function(i,element){ $(element).remove(); }); ul.insertBefore(li, ul.firstChild); } $(Common.insertGoogleSearch); /*Funkcja do liczenia, czy nastąpiło przepełnienie poziome lub pionowe*/ Common.PobierzSzerokoscPaskaPrzewijania=function(){ var div = $('<div style="width:50px;height:50px;overflow:hidden;position:absolute;top:-200px;left:-200px;"><div style="height:100px;"></div></div>'); $('body').append(div); var w1 = $('div', div).innerWidth(); div.css('overflow-y', 'scroll'); var w2 = $('div', div).innerWidth(); $(div).remove(); return (w1 - w2); } /*Funkcje do obsługi pasków przewijania*/ Common.ScrollBarOverflow=function(){ $('*.mw-overflow-x, *.mw-overflow-y').each(function(i,element_g){ /*start overflow*/ var comp=window.getComputedStyle(element_g, null); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var overflow=comp.getPropertyValue("overflow"); var overflow_x=$(element_g).hasClass('mw-overflow-x'); if(overflow_x){ var overflowX=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); if((overflowX)&&(overflowX=="auto")){ element_g.classList.remove("mw-scrollbar-overflow-x"); const hasHorizontalScrollbar = element_g.scrollWidth > element_g.clientWidth; // true lub false if(hasHorizontalScrollbar){ element_g.classList.add("mw-scrollbar-overflow-x"); } } } var overflow_y=$(element_g).hasClass('mw-overflow-y'); if(overflow_y){ var overflowY=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflowY)&&(overflowY=="auto")){ element_g.classList.remove("mw-scrollbar-overflow-y"); const hasVerticalScrollbar = element_g.scrollHeight > element_g.clientHeight; // true lub false if(hasVerticalScrollbar){ element_g.classList.add("mw-scrollbar-overflow-y"); } } } /*koniec overflow*/ }); } $(function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); $(window).on('scroll', function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); $(window).on('resize', function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); /*Funkcja symulująca właściwości position:sticky, wszędzie tam, gdzie nie można go użyć.*/ Common.StickyXY=function(){ $('*.mw-sticky-x, *.mw-sticky-y').each(function(i,element_g){ var comp=window.getComputedStyle(element_g, null); function FunStickyXY(height,top,bottom,width_box,left_box,right_box,x_box,x_box_right){ var pozycje_paskow=new Array(); $(element_g).find('*').each(function(i,element){ var comp=window.getComputedStyle(element, null); var overflow=comp.getPropertyValue("overflow"); var overflow_x=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); var overflow_y=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflow_x=="auto")||(overflow_x=="scroll")||(overflow_y=="auto")||(overflow_y=="scroll")){ pozycje_paskow.push(new Array(element,element.scrollTop,element.scrollLeft)); } }); var height_sticky=0; $('html.client-js.vector-sticky-header-enabled body.skin-vector-search-vue.vector-sticky-header-visible header.vector-sticky-header').each(function(i,el){ var rect_sticky=el.getBoundingClientRect(); height_sticky=parseInt(rect_sticky[height]); }); var StickyXYTopOld=$(element_g).data('sctickyXYOld-top');var StickyXYBottomOld=$(element_g).data('sctickyXYOld-bottom'); if(StickyXYTopOld===undefined){ var topold_war=parseFloat(element_g.style[top]); $(element_g).data('sctickyXYOld-top',((!isNaN(topold_war))?topold_war:0)); } if(StickyXYBottomOld===undefined){ var bottomold_war=parseFloat(element_g.style[bottom]); $(element_g).data('sctickyXYOld-bottom',((!isNaN(bottomold_war))?bottomold_war:0)); } var topold=$(element_g).data('sctickyXYOld-top')+height_sticky+5; var margintop=parseFloat(comp.getPropertyValue("margin-"+top)); margintop=((!isNaN(margintop))?margintop:0); var marginbottom=parseFloat(comp.getPropertyValue("margin-"+bottom)); marginbottom=((!isNaN(marginbottom))?marginbottom:0); var przodek_height=undefined; element_g.style[height]="auto"; element_g.style["max"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[top]="auto"; element_g.style[bottom]="auto"; if(width_box!=null){ element_g.style[width_box]="auto"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[left_box]="auto"; element_g.style[right_box]="0"; $(element_g).find('.mw-not-overflow-'+x_box+'.mw-overflow-'+x_box).each(function(i,element){ element.style[width_box]="auto"; }); } var parents_node_fun=$(element_g).parents('.mw-parent-node').first(); if((parents_node_fun==null)||(parents_node_fun.length==0)){return;} var width_rodzic=null; var rodzic_element=undefined; var comp_rodz; parents_node_fun.each(function(i,element){ comp_rodz=window.getComputedStyle(element,null); przodek_height=parseFloat(comp_rodz.getPropertyValue([height])); width_rodzic=width_box?parseFloat(comp_rodz.getPropertyValue([width_box])):null; rodzic_element=element; }); var height_box_real=parseFloat(comp.getPropertyValue(height)); var rect_dziecko=element_g.getBoundingClientRect(); var wys=document.documentElement["client"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]; var rect_rodzic; parents_node_fun.each(function(i,element){ rect_rodzic=element.getBoundingClientRect(); }); var top_ab=rect_rodzic[top]; var bottom_ab=(wys-rect_rodzic[bottom]); element_g.style["max"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=((Math.min(przodek_height,wys-((rect_rodzic[top]>=0)?(rect_rodzic[top]):(0))-((bottom_ab>=0)?(bottom_ab):(0)))-(((top_ab<=0)?(topold):(Math.max(0,topold-top_ab)))+((bottom_ab<=0)?($(element_g).data('sctickyXYOld-bottom')+5):(Math.max(0,$(element_g).data('sctickyXYOld-bottom')+5-bottom_ab)))+marginbottom+margintop))*(height_box_real/rect_dziecko[height]))+"px"; element_g.style[height]=(element_g["offset"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))])+"px"; var top_obj=(((top_ab>=0)?0:(-top_ab)))+((top_ab<=0)?(topold):(Math.max(0,topold-top_ab))); element_g.style[top]=top_obj+"px"; element_g.style[bottom]="auto"; if(width_box!=null){ element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; rodzic_element.style.position="static"; rodzic_element.style.overflow="hidden"; var width_box_real=parseFloat(comp.getPropertyValue(width_box)); var rect_dziecko=element_g.getBoundingClientRect(); if(parseInt(width_box_real)>parseInt(rect_dziecko[width_box])){ if(width_box=="width"){ element_g.classList.remove('mw-scrollbar-overflow-x'); }else{ element_g.classList.remove('mw-scrollbar-overflow-y'); } if(rect_dziecko[width_box]>width_rodzic){ if(width_box=="width"){ element_g.classList.add('mw-scrollbar-overflow-x'); }else{ element_g.classList.add('mw-scrollbar-overflow-y'); } } var width_box_real=parseFloat(comp.getPropertyValue(width_box)); var margin_all=parseFloat(comp.getPropertyValue("margin-"+left_box))+parseFloat(comp.getPropertyValue("margin-"+right_box)); margin_all+=parseFloat(comp_rodz.getPropertyValue("padding-"+left_box))+parseFloat(comp_rodz.getPropertyValue("padding-"+right_box)); var dlugosc=(width_rodzic-margin_all); dlugosc=((dlugosc>=0)?dlugosc:0); element_g.style.whiteSpace="nowrap"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width_box]))+"px"; element_g.style[width_box]=width_box_real+"px"; Common.ScrollBarOverflow(); $(element_g).find('.mw-overflow-'+x_box+'.mw-not-overflow-'+x_box+'.mw-scrollbar-overflow-'+x_box).each(function(i,element){ var comp_element=window.getComputedStyle(element, null) element.style[width_box]=(element["scroll"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]+Common.PobierzSzerokoscPaskaPrzewijania()+parseFloat(comp_element.getPropertyValue('padding-left'))+parseFloat(comp_element.getPropertyValue('padding-right')))+"px"; element.classList.remove('mw-scrollbar-overflow-'+x_box_right); }); element_g.style.whiteSpace="normal"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[width_box]="auto"; var rect_dziecko=element_g.getBoundingClientRect(); var width_box_real=parseFloat(comp.getPropertyValue(width_box)); element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width_box]))+"px"; element_g.style[width_box]=width_box_real+"px"; element_g.style[left_box]="0"; element_g.style[right_box]="auto"; rodzic_element.style.position="relative"; }else{ element_g.style.whiteSpace="nowrap"; var szerokosc_box=rect_dziecko[width_box]; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(szerokosc_box)+"px"; element_g.style[width_box]=(szerokosc_box)+"px"; Common.ScrollBarOverflow(); $(element_g).find('.mw-overflow-'+x_box+'.mw-not-overflow-'+x_box+'.mw-scrollbar-overflow-'+x_box).each(function(i,element){ var comp_element=window.getComputedStyle(element, null); element.style[width_box]=(element["scroll"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]+Common.PobierzSzerokoscPaskaPrzewijania()+parseFloat(comp_element.getPropertyValue('padding-left'))+parseFloat(comp_element.getPropertyValue('padding-right')))+"px"; element.classList.remove('mw-scrollbar-overflow-'+x_box_right); }); element_g.style.whiteSpace="normal"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[width_box]="auto"; var rect_dziecko=element_g.getBoundingClientRect(); var szerokosc_box=rect_dziecko[width_box]; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(szerokosc_box)+"px"; element_g.style[width_box]=(szerokosc_box)+"px"; var szerokosc=rect_dziecko[width_box]+parseFloat(comp.getPropertyValue("margin-"+left_box))+parseFloat(comp.getPropertyValue("margin-"+right_box)); if(parseInt(szerokosc)>parseInt(width_rodzic)){ element_g.style[right_box]="0"; element_g.style[left_box]="auto"; rodzic_element.style.overflow="visible"; }else{ element_g.style[left_box]="0"; element_g.style[right_box]="auto"; rodzic_element.style.position="relative"; } } } element_g.style[height]="auto"; element_g.style[height]=(element_g["offset"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))])+"px"; Common.ScrollBarOverflow(); for(var i in pozycje_paskow){ pozycje_paskow[i][0].scrollTop=pozycje_paskow[i][1]; pozycje_paskow[i][0].scrollLeft=pozycje_paskow[i][2]; } } element_g.classList.add('mw-sticky-js'); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var visibility=comp.getPropertyValue("visibility"); if(visibility=="hidden"){return;} var position=comp.getPropertyValue("position"); if(position!="absolute"){return;} var sticky_x=$(element_g).hasClass('mw-sticky-x'); var sticky_y=$(element_g).hasClass('mw-sticky-y'); if((sticky_x)&&(!sticky_y)){ var str=$(element_g).parents('.strona_górna, .strona_dolna').first(); if(str.hasClass('strona_górna')){ FunStickyXY("width","left","right","height","top","bottom","y","x"); }else if(str.hasClass('strona_dolna')){ FunStickyXY("width","left","right","height","bottom","top","x","y"); } }else if((!sticky_x)&&(sticky_y)){ var str=$(element_g).parents('.strona_prawa, .strona_lewa').first(); if(str.hasClass('strona_prawa')){ FunStickyXY("height","top","bottom","width","left","right","x","y"); }else if(str.hasClass('strona_lewa')){ FunStickyXY("height","top","bottom","width","right","left","x","y"); } }else{ FunStickyXY("width","left","right",null); FunStickyXY("height","top","bottom",null); } }); } $(function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); $(window).on('scroll', function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); $(window).on('resize', function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); /*Funkcja do ustawiania maksymalnego rozmiaru dziecka, względem rodzica, przy position:absolute*/ Common.OptimalXY=function(){ $('*.mw-optimal-x, *.mw-optimal-y').each(function(i,element_g){ var comp=window.getComputedStyle(element_g, null); function FunOptimalXY(width,left,right){ var pozycje_paskow=new Array(); $(element_g).find('*').each(function(i,element){ var comp=window.getComputedStyle(element, null); var overflow=comp.getPropertyValue("overflow"); var overflow_x=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); var overflow_y=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflow_x=="auto")||(overflow_x=="scroll")||(overflow_y=="auto")||(overflow_y=="scroll")){ pozycje_paskow.push(new Array(element,element.scrollTop,element.scrollLeft)); } }); var width_rodzic=null; var rodzic_node; var comp_rodz; $(element_g).parents('.mw-parent-node').first().each(function(i,element){ comp_rodz=window.getComputedStyle(element,null); width_rodzic=parseFloat(comp_rodz.getPropertyValue([width])); rodzic_node=element; }); if((width_rodzic!=null)&&(!isNaN(width_rodzic))){ element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; var width_box_real=parseFloat(comp.getPropertyValue(width)); var rect_dziecko=element_g.getBoundingClientRect(); if(width=="width"){ element_g.classList.remove('mw-scrollbar-overflow-x'); }else{ element_g.classList.remove('mw-scrollbar-overflow-y'); } if(parseInt(width_box_real)>parseInt(rect_dziecko[width])){ var rect_dziecko=element_g.getBoundingClientRect(); if(rect_dziecko[width]>width_rodzic){ if(width=="width"){ element_g.classList.add('mw-scrollbar-overflow-x'); }else{ element_g.classList.add('mw-scrollbar-overflow-y'); } } var width_box_real=parseFloat(comp.getPropertyValue(width)); var margin_all=parseFloat(comp.getPropertyValue("margin-"+left))+parseFloat(comp.getPropertyValue("margin-"+right)); margin_all+=parseFloat(comp_rodz.getPropertyValue("padding-"+left))+parseFloat(comp_rodz.getPropertyValue("padding-"+right)); var dlugosc=(width_rodzic-margin_all); dlugosc=((dlugosc>=0)?dlugosc:0); element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width]))+"px"; }else{ element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(rect_dziecko[width])+"px"; } var str=$(element_g).parents('.strona_prawa, .strona_lewa, .strona_górna, .strona_dolna').first(); if(!str.hasClass('strona_start-nawigacja_boksy')){ var rect_dziecko=element_g.getBoundingClientRect(); var szerokosc=rect_dziecko[width]+parseFloat(comp.getPropertyValue("margin-"+left))+parseFloat(comp.getPropertyValue("margin-"+right)); if(parseInt(szerokosc)>parseInt(width_rodzic)){ str.css('position','static'); }else{ str.css('position','relative'); } } } for(var i in pozycje_paskow){ pozycje_paskow[i][0].scrollTop=pozycje_paskow[i][1]; pozycje_paskow[i][0].scrollLeft=pozycje_paskow[i][2]; } }; element_g.classList.add('mw-optimal-js'); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var visibility=comp.getPropertyValue("visibility"); if(visibility=="hidden"){return;} var position=comp.getPropertyValue("position"); if(position!="absolute"){return;} var optimal_x=$(element_g).hasClass('mw-optimal-x'); var optimal_y=$(element_g).hasClass('mw-optimal-y'); if(optimal_x){ FunOptimalXY("width","left","right"); } if(optimal_y){ FunOptimalXY("height","top","bottom"); } }); } $(function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); $(window).on("scroll",function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); $(window).on("resize",function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); /*Uruchamianie dodatkowych funkcji, niż standardowe, w href w linkach rozwijanej tabeli TABLE lub ramki DIV, jeśli ona generuje zwiększenie rozmiarów, aby w rodzicu pojawił się pasek przewijania, z dodatkowymi opcjami generowanej przez arkusz kalkulacyjny CSS*/ Common.RamkiTableIDiv=function(obiekt,id_tabeli_lub_ramki,id_nazwa_a,fun_obiektu){ $(obiekt).each(function(i,element_f){ return new Promise(function(resolve,reject){ var czas=0; function Czekaj(){ if(czas>30000){ reject(); } var collapsebutton=$(element_f).find('a#'+id_nazwa_a+i); if((collapsebutton!==null)&&(collapsebutton.length>0)){ var tabele_lub_ramki=collapsebutton.parents('#'+id_tabeli_lub_ramki+i); if((tabele_lub_ramki===null)||(tabele_lub_ramki.length==0)){reject();} resolve(i); }else{ czas+=100; setTimeout(Czekaj,100); } } Czekaj(); }).then(function(i){ $('*.mw-overflow-x a#'+id_nazwa_a+i+', *.mw-overflow-y a#'+id_nazwa_a+i).each(function(j,element_g){ var href=element_g.getAttribute('href'); if((href!=null)&&(href!="")){ var col="[\\s;\\(\\,]*javascript:"+fun_obiektu.replace(/\./g,"\\.")+"\\s*\\(\\s*"+i+"\\s*\\)[\\s;\\)\\,]*"; var re_frame = new RegExp(col,'g'); var re_javascript=new RegExp("^[\\s;]*javascript:"); if((re_javascript.test(href))&&(re_frame.test(href))){ element_g.setAttribute('href',href.replace(/[;\s]*$/g,"")+';javascript:Common.ScrollBarOverflow();javascript:Common.StickyXY();javascript:Common.OptimalXY()') } } }); }).catch(function(){}); }); }; /*Dla menu rozwijanego tabeli TABLE zdefiniowanej na stronie MediaWiki:Common.js*/ Common.RamkiTableIDiv("table.collapsible",'collapsibleTable','collapseButton','Common.collapseTable'); /*Dla menu rozwijanej ramki DIV zdefiniowanej na stronie MediaWiki:Common.js*/ Common.RamkiTableIDiv("div.NavFrame",'NavFrame','NavToggle','Common.toggleNavigationBar'); /*Koniec dodatkowych funkcji*/ /*Uruchamianie dodatkowych zdarzeń do Common.StickyXY i OptimalXY*/ Common.ZdarzeniaDodatkoweFunkcyjneXY=function(css,fun_zdarz){ var fun_css=$(css); fun_css.on('mouseenter',fun_zdarz); fun_css.on('mouseleave',fun_zdarz); fun_css.on('transitionstart',fun_zdarz); fun_css.on('webkittransitionstart',fun_zdarz); fun_css.on('moztransitionstart',fun_zdarz); fun_css.on('otransitionstart',fun_zdarz); fun_css.on('transitionrun',fun_zdarz); fun_css.on('webkittransitionrun',fun_zdarz); fun_css.on('moztransitionrun',fun_zdarz); fun_css.on('otransitionrun',fun_zdarz); fun_css.on('transitioncancel',fun_zdarz); fun_css.on('webkittransitioncancel',fun_zdarz); fun_css.on('moztransitioncancel',fun_zdarz); fun_css.on('otransitioncancel',fun_zdarz); fun_css.on('transitionend',fun_zdarz); fun_css.on('webkittransitionend',fun_zdarz); fun_css.on('moztransitionend',fun_zdarz); fun_css.on('otransitionend',fun_zdarz); }; Common.ZdarzeniaDodatkoweFunkcyjneXY("*.mw-sticky-x, *.mw-sticky-y",Common.StickyXY); Common.ZdarzeniaDodatkoweFunkcyjneXY('*.mw-optimal-x, *.mw-optimal-y',Common.OptimalXY); /*Koniec dodatkowych zdarzeń*/ /*Program do obsługi szablonu StronaStart i jego pokrewnych książkowych*/ Common.StronaStart=function(){ var elements=$('.strona_start .strona .ciało_zawartości > .menu > .menu_boks'); elements.parent().show(); $('.strona_start').find('.strona_lewa .nawigacja_boksy, .strona_prawa .nawigacja_boksy').each(function(i,element){ $(element).css('visibility',"hidden"); }); $('.strona_start').find('.strona_lewa .nawigacja_spis, .strona_prawa .nawigacja_spis').each(function(i,element){ var czy_visible=$(element).css('visibility'); $(element).css('visibility',"visible"); var str=$(element).parents('.strona_prawa, .strona_lewa').first(); str.css('position','relative'); str.addClass('strona_start-nawigacja_spis'); str.removeClass('strona_start-nawigacja_boksy'); if(czy_visible=="hidden"){ $(Common.ScrollBarOverflow); $(Common.StickyXY); } }); function StronaStartFun(){ var id=this; $(id).parents('.strona_start').first().find('.strona .ciało_zawartości > .menu > .menu_boks').children().each(function(i,element){ var display=$(element).css('display'); if(display=="none"){ $(element).css('display',"block"); }else{ $(element).css('display',"none"); } }); $(id).parents('.strona_start').first().find('.strona_lewa, .strona_prawa').children().each(function(i,element){ var visibility=window.getComputedStyle(element, null).getPropertyValue('visibility'); if(visibility=="hidden"){ $(element).css('visibility',"visible"); var str=$(element).parents('.strona_prawa, .strona_lewa').first(); if($(element).hasClass('nawigacja_boksy')){ str.css('position','static'); str.addClass('strona_start-nawigacja_boksy'); str.removeClass('strona_start-nawigacja_spis'); $(Common.ScrollBarOverflow); $(Common.OptimalXY); }else if($(element).hasClass('nawigacja_spis')){ str.css('position','relative'); str.addClass('strona_start-nawigacja_spis'); str.removeClass('strona_start-nawigacja_boksy'); $(Common.ScrollBarOverflow); $(Common.StickyXY); } }else{ $(element).css('visibility',"hidden"); } }); } elements.on('click',StronaStartFun); } $(Common.StronaStart); or5u5imybmhti1l53y3oraumrt412ob 437151 437144 2022-08-07T16:31:09Z Persino 2851 javascript text/javascript mw.loader.load( '//pl.wikibooks.org/w/index.php?action=raw&ctype=text/javascript&title=Wikipedysta:Persino/Gadget-StronicowyParser.js', 'text/javascript', true ); /**/ /* Umieszczony tutaj kod JavaScript zostanie załadowany przez każdego użytkownika, podczas każdego ładowania strony. */ // Frame Busting if (top != self) top.location.href = self.location.href; /* * Zmienna Common.pageInfo, jego elementy, instrukcja obsługi: * Common.pageInfo.namespace numer przestrzeni nazw (równe wgNamespaceNumber) * Common.pageInfo.name pełna nazwa strony * Common.pageInfo.title tytuł strony, czyli ostatnia część po '/' albo jest równe pageInfo.name, gdy nigdzie nie występuje slash * Common.pageInfo.book tytuł książki * Common.pageInfo.action akcja taka jaka jest w adresie URL pod "action=", w przypadku normalnego czytania strony, action jest równe "get" * Common.pageInfo.diff null w przypadku, gdy nie porównujemy wersji, w przeciwnym wypadku wartość występującą w adresie URL */ /*Przestrzeń nazw: Common, zdefiniowanym za pomocą tablicy*/ var Common=new Array(); /*Funkcje w przestrzeni nazw Common*/ Common.Naglowek=function(){ /* Skrypt odpowiedzialny za wyświetlanie szablonu Nagłówek [[Szablon:Nagłówek]] */ var hideAll = document.getElementById('mójNagłówekUkryj'); var noFooter = false; var footers = 0; var tags = document.getElementsByTagName('div'); for (var i = 0; i < tags.length; i++) { var el=tags[i].getAttribute("id"); if (el=='mojaStopka') footers++; else if (hideAll && (el=='mójNagłówek')) { tags[i].innerHTML=""; noFooter=true; } } if (noFooter) return; var footer = document.getElementById('mojaStopka'); if ((footer !== null) && (footers==1)) { var bodyContent = document.getElementById('bodyContent'); if (bodyContent !== null) { var s0=document.getElementById('mojaStopka0'); var s1=document.getElementById('mojaStopka1'); if ((s1 !== null) || ((s0 === null) && (bodyContent.innerHTML.length>8000))){ var strona=document.getElementById('strona'); if(strona!==null){ strona.appendChild(footer); }else{ var catlinks=document.getElementById('catlinks'); if(catlinks !== null){ bodyContent.insertBefore(footer,catlinks); }else{ bodyContent.appendChild(footer); } } } } } /* Koniec skryptu odpowiedzialnego za wyświetlanie szablonu Nagłówek [[Szablon:Nagłówek]] */ }; $(Common.Naglowek); /*Informacje o danej stronie*/ Common.PageInfoInit=function(){ var _g = /_/g; this.name = mw.config.get('wgPageName').replace(/_/g, ' '); this.namespace = mw.config.get('wgNamespaceNumber'); var i = this.name.search(/\/[^\/]*$/g); this.title = this.name.slice(i + 1); this.book = this.name.replace(/\/.*/g, ""); if ( document.URL.search("//pl.wikibooks.org/w/index.php") != -1 ) { re = /\&diff=/g; this.diff = re.test(document.URL); re = /\&action=[^\&]*/g; this.action = document.URL.match(re); if ( this.action === null ) { this.action = 'get'; } else { this.action = this.action[0].slice(8, this.action[0].length); } } else { this.diff = null; this.action = 'get'; } } Common.pageInfo = new Common.PageInfoInit(); /** Collapsible tables ********************************************************* * * Description: Allows tables to be collapsed, showing only the header. See * [[en:Wikipedia:NavFrame]]. * Maintainers: [[User:R. Koot]] */ Common.autoCollapse = 2; Common.collapseCaption = "ukryj"; Common.expandCaption = "pokaż"; Common.collapseTable=function( tableIndex ) { var Button = document.getElementById( "collapseButton" + tableIndex ); var Table = document.getElementById( "collapsibleTable" + tableIndex ); if ( !Table || !Button ) { return false; } var Rows = Table.rows; if ( Button.firstChild.data == Common.collapseCaption ) { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = "none"; } Button.firstChild.data = Common.expandCaption; } else { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = Rows[0].style.display; } Button.firstChild.data = Common.collapseCaption; } } Common.createCollapseButtons=function() { var tableIndex = 0; var NavigationBoxes = new Object(); var Tables = document.getElementsByTagName( "table" ); for ( var i = 0; i < Tables.length; i++ ) { if ( $(Tables[i]).hasClass( "collapsible" ) ) { /* only add button and increment count if there is a header row to work with */ var HeaderRow = Tables[i].getElementsByTagName( "tr" )[0]; if (!HeaderRow) continue; var Header = HeaderRow.getElementsByTagName( "th" )[0]; if (!Header) continue; NavigationBoxes[ tableIndex ] = Tables[i]; Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex ); var Button = document.createElement( "span" ); var ButtonLink = document.createElement( "a" ); var ButtonText = document.createTextNode( Common.collapseCaption ); Button.style.styleFloat = "right"; Button.style.cssFloat = "right"; Button.style.fontWeight = "normal"; Button.style.textAlign = "right"; Button.style.width = "6em"; ButtonLink.style.color = Header.style.color; ButtonLink.setAttribute( "id", "collapseButton" + tableIndex ); ButtonLink.setAttribute( "href", "javascript:Common.collapseTable(" + tableIndex + ");" ); ButtonLink.appendChild( ButtonText ); Button.appendChild( document.createTextNode( "[" ) ); Button.appendChild( ButtonLink ); Button.appendChild( document.createTextNode( "]" ) ); $(Header.childNodes[0]).has('a#collapseButton' + tableIndex).each(function(i,element){ $(element).remove(); }); Header.insertBefore( Button, Header.childNodes[0]); tableIndex++; } } for ( var i = 0; i < tableIndex; i++ ) { if ( $(NavigationBoxes[i]).hasClass( "collapsed" ) || ( tableIndex >= Common.autoCollapse && $(NavigationBoxes[i]).hasClass( "Common.autoCollapse" ) ) ) { collapseTable( i ); } else if ( $(NavigationBoxes[i]).hasClass( "innercollapse" ) ) { var element = NavigationBoxes[i]; while (element = element.parentNode) { if ( $(element).hasClass( "outercollapse" ) ) { collapseTable ( i ); break; } } } } } $(Common.createCollapseButtons ); /** Dynamic Navigation Bars (experimental) ************************************* * * Description: See [[Wikipedia:NavFrame]]. * Maintainers: UNMAINTAINED */ // set up the words in your language Common.NavigationBarHide = '[' + Common.collapseCaption + ']'; Common.NavigationBarShow = '[' + Common.expandCaption + ']'; // shows and hides content and picture (if available) of navigation bars // Parameters: // indexNavigationBar: the index of navigation bar to be toggled Common.toggleNavigationBar=function(indexNavigationBar) { var NavToggle = document.getElementById("NavToggle" + indexNavigationBar); var NavFrame = document.getElementById("NavFrame" + indexNavigationBar); if (!NavFrame || !NavToggle) { return false; } // if shown now if (NavToggle.firstChild.data == Common.NavigationBarHide) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) ) { NavChild.style.display = 'none'; } if ( $(NavChild).hasClass( 'NavContent') ) { NavChild.style.display = 'none'; } } NavToggle.firstChild.data = Common.NavigationBarShow; // if hidden now } else if (NavToggle.firstChild.data == Common.NavigationBarShow) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ($(NavChild).hasClass( 'NavPic')) { NavChild.style.display = 'block'; } if ($(NavChild).hasClass( 'NavContent')) { NavChild.style.display = 'block'; } } NavToggle.firstChild.data = Common.NavigationBarHide; } } // adds show/hide-button to navigation bars Common.createNavigationBarToggleButton=function() { var indexNavigationBar = 0; // iterate over all < div >-elements var divs = document.getElementsByTagName("div"); for (var i = 0; NavFrame = divs[i]; i++) { // if found a navigation bar if ($(NavFrame).hasClass( "NavFrame")) { indexNavigationBar++; var NavToggle = document.createElement("a"); NavToggle.className = 'NavToggle'; NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar); NavToggle.setAttribute('href', 'javascript:Common.toggleNavigationBar(' + indexNavigationBar + ');'); var isCollapsed = $(NavFrame).hasClass( "collapsed" ); /* * Check if any children are already hidden. This loop is here for backwards compatibility: * the old way of making NavFrames start out collapsed was to manually add style="display:none" * to all the NavPic/NavContent elements. Since this was bad for accessibility (no way to make * the content visible without JavaScript support), the new recommended way is to add the class * "collapsed" to the NavFrame itself, just like with collapsible tables. */ for (var NavChild = NavFrame.firstChild; NavChild != null && !isCollapsed; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) || $(NavChild).hasClass( 'NavContent' ) ) { if ( NavChild.style.display == 'none' ) { isCollapsed = true; } } } if (isCollapsed) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) || $(NavChild).hasClass( 'NavContent' ) ) { NavChild.style.display = 'none'; } } } var NavToggleText = document.createTextNode(isCollapsed ? Common.NavigationBarShow : Common.NavigationBarHide); NavToggle.appendChild(NavToggleText); // Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked) for(var j=0; j < NavFrame.childNodes.length; j++) { if ($(NavFrame.childNodes[j]).hasClass( "NavHead")) { $(NavFrame.childNodes[j]).children('a.NavToggle#NavToggle' + indexNavigationBar).each(function(i,element){ $(element).remove(); }); NavFrame.childNodes[j].appendChild(NavToggle); } } NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar); } } } $(Common.createNavigationBarToggleButton ); // Wyszukiwanie Google na stronach podręczników Common.googleSearchInitialized = false; Common.insertGoogleSearch=function() { if ( mw.config.get('wgNamespaceNumber') != 0 || Common.googleSearchInitialized ) { return; } Common.googleSearchInitialized = true; var google = "http://www.google.com/custom?sa=Google+Search&domains=pl.wikibooks.org/wiki/PAGE&sitesearch=pl.wikibooks.org/wiki/PAGE"; var ul = jQuery('#p-tb ul')[0]; if (!ul) { return; } var link = document.createElement('a'); var book = Common.pageInfo.book; if ( book.length == 1 || book.indexOf('++') != -1 || encodeURIComponent(book) != book ) { google = "http://www.google.com/custom?sa=Google+Search&domains=pl.wikibooks.org/wiki/&sitesearch=pl.wikibooks.org/wiki/&q=%22PAGE%22" } link.href = google.replace(/PAGE/g, encodeURIComponent(book)); link.appendChild(document.createTextNode("Szukaj w podręczniku")); var li = document.createElement('li'); li.id = "google-trick-search"; li.appendChild(link); $(ul).children('li#google-trick-search').each(function(i,element){ $(element).remove(); }); ul.insertBefore(li, ul.firstChild); } $(Common.insertGoogleSearch); /*Funkcja do liczenia, czy nastąpiło przepełnienie poziome lub pionowe*/ Common.PobierzSzerokoscPaskaPrzewijania=function(x_box_right){ var div = $('<div style="width:50px;height:50px;overflow:hidden;position:absolute;top:-200px;left:-200px;"><div style="height:100px;"></div></div>'); $('body').append(div); var w1 = $('div', div).innerWidth(); div.css('overflow-'+(x_box_right||"y"), 'scroll'); var w2 = $('div', div).innerWidth(); $(div).remove(); return (w1 - w2); } /*Funkcje do obsługi pasków przewijania*/ Common.ScrollBarOverflow=function(){ $('*.mw-overflow-x, *.mw-overflow-y').each(function(i,element_g){ /*start overflow*/ var comp=window.getComputedStyle(element_g, null); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var overflow=comp.getPropertyValue("overflow"); var overflow_x=$(element_g).hasClass('mw-overflow-x'); if(overflow_x){ var overflowX=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); if((overflowX)&&(overflowX=="auto")){ element_g.classList.remove("mw-scrollbar-overflow-x"); const hasHorizontalScrollbar = element_g.scrollWidth > element_g.clientWidth; // true lub false if(hasHorizontalScrollbar){ element_g.classList.add("mw-scrollbar-overflow-x"); } } } var overflow_y=$(element_g).hasClass('mw-overflow-y'); if(overflow_y){ var overflowY=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflowY)&&(overflowY=="auto")){ element_g.classList.remove("mw-scrollbar-overflow-y"); const hasVerticalScrollbar = element_g.scrollHeight > element_g.clientHeight; // true lub false if(hasVerticalScrollbar){ element_g.classList.add("mw-scrollbar-overflow-y"); } } } /*koniec overflow*/ }); } $(function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); $(window).on('scroll', function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); $(window).on('resize', function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); /*Funkcja symulująca właściwości position:sticky, wszędzie tam, gdzie nie można go użyć.*/ Common.StickyXY=function(){ $('*.mw-sticky-x, *.mw-sticky-y').each(function(i,element_g){ var comp=window.getComputedStyle(element_g, null); function FunStickyXY(height,top,bottom,width_box,left_box,right_box,x_box,x_box_right){ var pozycje_paskow=new Array(); $(element_g).find('*').each(function(i,element){ var comp=window.getComputedStyle(element, null); var overflow=comp.getPropertyValue("overflow"); var overflow_x=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); var overflow_y=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflow_x=="auto")||(overflow_x=="scroll")||(overflow_y=="auto")||(overflow_y=="scroll")){ pozycje_paskow.push(new Array(element,element.scrollTop,element.scrollLeft)); } }); var height_sticky=0; $('html.client-js.vector-sticky-header-enabled body.skin-vector-search-vue.vector-sticky-header-visible header.vector-sticky-header').each(function(i,el){ var rect_sticky=el.getBoundingClientRect(); height_sticky=parseInt(rect_sticky[height]); }); var StickyXYTopOld=$(element_g).data('sctickyXYOld-top');var StickyXYBottomOld=$(element_g).data('sctickyXYOld-bottom'); if(StickyXYTopOld===undefined){ var topold_war=parseFloat(element_g.style[top]); $(element_g).data('sctickyXYOld-top',((!isNaN(topold_war))?topold_war:0)); } if(StickyXYBottomOld===undefined){ var bottomold_war=parseFloat(element_g.style[bottom]); $(element_g).data('sctickyXYOld-bottom',((!isNaN(bottomold_war))?bottomold_war:0)); } var topold=$(element_g).data('sctickyXYOld-top')+height_sticky+5; var margintop=parseFloat(comp.getPropertyValue("margin-"+top)); margintop=((!isNaN(margintop))?margintop:0); var marginbottom=parseFloat(comp.getPropertyValue("margin-"+bottom)); marginbottom=((!isNaN(marginbottom))?marginbottom:0); var przodek_height=undefined; element_g.style[height]="auto"; element_g.style["max"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[top]="auto"; element_g.style[bottom]="auto"; if(width_box!=null){ element_g.style[width_box]="auto"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[left_box]="auto"; element_g.style[right_box]="0"; $(element_g).find('.mw-not-overflow-'+x_box+'.mw-overflow-'+x_box).each(function(i,element){ element.style[width_box]="auto"; }); } var parents_node_fun=$(element_g).parents('.mw-parent-node').first(); if((parents_node_fun==null)||(parents_node_fun.length==0)){return;} var width_rodzic=null; var rodzic_element=undefined; var comp_rodz; parents_node_fun.each(function(i,element){ comp_rodz=window.getComputedStyle(element,null); przodek_height=parseFloat(comp_rodz.getPropertyValue([height])); width_rodzic=width_box?parseFloat(comp_rodz.getPropertyValue([width_box])):null; rodzic_element=element; }); var height_box_real=parseFloat(comp.getPropertyValue(height)); var rect_dziecko=element_g.getBoundingClientRect(); var wys=document.documentElement["client"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]; var rect_rodzic; parents_node_fun.each(function(i,element){ rect_rodzic=element.getBoundingClientRect(); }); var top_ab=rect_rodzic[top]; var bottom_ab=(wys-rect_rodzic[bottom]); element_g.style["max"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=((Math.min(przodek_height,wys-((rect_rodzic[top]>=0)?(rect_rodzic[top]):(0))-((bottom_ab>=0)?(bottom_ab):(0)))-(((top_ab<=0)?(topold):(Math.max(0,topold-top_ab)))+((bottom_ab<=0)?($(element_g).data('sctickyXYOld-bottom')+5):(Math.max(0,$(element_g).data('sctickyXYOld-bottom')+5-bottom_ab)))+marginbottom+margintop))*(height_box_real/rect_dziecko[height]))+"px"; element_g.style[height]=(element_g["offset"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))])+"px"; var top_obj=(((top_ab>=0)?0:(-top_ab)))+((top_ab<=0)?(topold):(Math.max(0,topold-top_ab))); element_g.style[top]=top_obj+"px"; element_g.style[bottom]="auto"; if(width_box!=null){ element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; rodzic_element.style.position="static"; rodzic_element.style.overflow="hidden"; var width_box_real=parseFloat(comp.getPropertyValue(width_box)); var rect_dziecko=element_g.getBoundingClientRect(); if(parseInt(width_box_real)>parseInt(rect_dziecko[width_box])){ if(width_box=="width"){ element_g.classList.remove('mw-scrollbar-overflow-x'); }else{ element_g.classList.remove('mw-scrollbar-overflow-y'); } if(rect_dziecko[width_box]>width_rodzic){ if(width_box=="width"){ element_g.classList.add('mw-scrollbar-overflow-x'); }else{ element_g.classList.add('mw-scrollbar-overflow-y'); } } var width_box_real=parseFloat(comp.getPropertyValue(width_box)); var margin_all=parseFloat(comp.getPropertyValue("margin-"+left_box))+parseFloat(comp.getPropertyValue("margin-"+right_box)); margin_all+=parseFloat(comp_rodz.getPropertyValue("padding-"+left_box))+parseFloat(comp_rodz.getPropertyValue("padding-"+right_box)); var dlugosc=(width_rodzic-margin_all); dlugosc=((dlugosc>=0)?dlugosc:0); element_g.style.whiteSpace="nowrap"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width_box]))+"px"; element_g.style[width_box]=width_box_real+"px"; Common.ScrollBarOverflow(); $(element_g).find('.mw-overflow-'+x_box+'.mw-not-overflow-'+x_box+'.mw-scrollbar-overflow-'+x_box).each(function(i,element){ var comp_element=window.getComputedStyle(element, null) element.style[width_box]=(element["scroll"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]+Common.PobierzSzerokoscPaskaPrzewijania(x_box_right)+parseFloat(comp_element.getPropertyValue('padding-left'))+parseFloat(comp_element.getPropertyValue('padding-right')))+"px"; element.classList.remove('mw-scrollbar-overflow-'+x_box_right); }); element_g.style.whiteSpace="normal"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[width_box]="auto"; var rect_dziecko=element_g.getBoundingClientRect(); var width_box_real=parseFloat(comp.getPropertyValue(width_box)); element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width_box]))+"px"; element_g.style[width_box]=width_box_real+"px"; element_g.style[left_box]="0"; element_g.style[right_box]="auto"; rodzic_element.style.position="relative"; }else{ element_g.style.whiteSpace="nowrap"; var szerokosc_box=rect_dziecko[width_box]; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(szerokosc_box)+"px"; element_g.style[width_box]=(szerokosc_box)+"px"; Common.ScrollBarOverflow(); $(element_g).find('.mw-overflow-'+x_box+'.mw-not-overflow-'+x_box+'.mw-scrollbar-overflow-'+x_box).each(function(i,element){ var comp_element=window.getComputedStyle(element, null); element.style[width_box]=(element["scroll"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]+Common.PobierzSzerokoscPaskaPrzewijania(x_box_right)+parseFloat(comp_element.getPropertyValue('padding-left'))+parseFloat(comp_element.getPropertyValue('padding-right')))+"px"; element.classList.remove('mw-scrollbar-overflow-'+x_box_right); }); element_g.style.whiteSpace="normal"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[width_box]="auto"; var rect_dziecko=element_g.getBoundingClientRect(); var szerokosc_box=rect_dziecko[width_box]; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(szerokosc_box)+"px"; element_g.style[width_box]=(szerokosc_box)+"px"; var szerokosc=rect_dziecko[width_box]+parseFloat(comp.getPropertyValue("margin-"+left_box))+parseFloat(comp.getPropertyValue("margin-"+right_box)); if(parseInt(szerokosc)>parseInt(width_rodzic)){ element_g.style[right_box]="0"; element_g.style[left_box]="auto"; rodzic_element.style.overflow="visible"; }else{ element_g.style[left_box]="0"; element_g.style[right_box]="auto"; rodzic_element.style.position="relative"; } } } element_g.style[height]="auto"; element_g.style[height]=(element_g["offset"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))])+"px"; Common.ScrollBarOverflow(); for(var i in pozycje_paskow){ pozycje_paskow[i][0].scrollTop=pozycje_paskow[i][1]; pozycje_paskow[i][0].scrollLeft=pozycje_paskow[i][2]; } } element_g.classList.add('mw-sticky-js'); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var visibility=comp.getPropertyValue("visibility"); if(visibility=="hidden"){return;} var position=comp.getPropertyValue("position"); if(position!="absolute"){return;} var sticky_x=$(element_g).hasClass('mw-sticky-x'); var sticky_y=$(element_g).hasClass('mw-sticky-y'); if((sticky_x)&&(!sticky_y)){ var str=$(element_g).parents('.strona_górna, .strona_dolna').first(); if(str.hasClass('strona_górna')){ FunStickyXY("width","left","right","height","top","bottom","y","x"); }else if(str.hasClass('strona_dolna')){ FunStickyXY("width","left","right","height","bottom","top","x","y"); } }else if((!sticky_x)&&(sticky_y)){ var str=$(element_g).parents('.strona_prawa, .strona_lewa').first(); if(str.hasClass('strona_prawa')){ FunStickyXY("height","top","bottom","width","left","right","x","y"); }else if(str.hasClass('strona_lewa')){ FunStickyXY("height","top","bottom","width","right","left","x","y"); } }else{ FunStickyXY("width","left","right",null); FunStickyXY("height","top","bottom",null); } }); } $(function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); $(window).on('scroll', function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); $(window).on('resize', function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); /*Funkcja do ustawiania maksymalnego rozmiaru dziecka, względem rodzica, przy position:absolute*/ Common.OptimalXY=function(){ $('*.mw-optimal-x, *.mw-optimal-y').each(function(i,element_g){ var comp=window.getComputedStyle(element_g, null); function FunOptimalXY(width,left,right){ var pozycje_paskow=new Array(); $(element_g).find('*').each(function(i,element){ var comp=window.getComputedStyle(element, null); var overflow=comp.getPropertyValue("overflow"); var overflow_x=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); var overflow_y=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflow_x=="auto")||(overflow_x=="scroll")||(overflow_y=="auto")||(overflow_y=="scroll")){ pozycje_paskow.push(new Array(element,element.scrollTop,element.scrollLeft)); } }); var width_rodzic=null; var rodzic_node; var comp_rodz; $(element_g).parents('.mw-parent-node').first().each(function(i,element){ comp_rodz=window.getComputedStyle(element,null); width_rodzic=parseFloat(comp_rodz.getPropertyValue([width])); rodzic_node=element; }); if((width_rodzic!=null)&&(!isNaN(width_rodzic))){ element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; var width_box_real=parseFloat(comp.getPropertyValue(width)); var rect_dziecko=element_g.getBoundingClientRect(); if(width=="width"){ element_g.classList.remove('mw-scrollbar-overflow-x'); }else{ element_g.classList.remove('mw-scrollbar-overflow-y'); } if(parseInt(width_box_real)>parseInt(rect_dziecko[width])){ var rect_dziecko=element_g.getBoundingClientRect(); if(rect_dziecko[width]>width_rodzic){ if(width=="width"){ element_g.classList.add('mw-scrollbar-overflow-x'); }else{ element_g.classList.add('mw-scrollbar-overflow-y'); } } var width_box_real=parseFloat(comp.getPropertyValue(width)); var margin_all=parseFloat(comp.getPropertyValue("margin-"+left))+parseFloat(comp.getPropertyValue("margin-"+right)); margin_all+=parseFloat(comp_rodz.getPropertyValue("padding-"+left))+parseFloat(comp_rodz.getPropertyValue("padding-"+right)); var dlugosc=(width_rodzic-margin_all); dlugosc=((dlugosc>=0)?dlugosc:0); element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width]))+"px"; }else{ element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(rect_dziecko[width])+"px"; } var str=$(element_g).parents('.strona_prawa, .strona_lewa, .strona_górna, .strona_dolna').first(); if(!str.hasClass('strona_start-nawigacja_boksy')){ var rect_dziecko=element_g.getBoundingClientRect(); var szerokosc=rect_dziecko[width]+parseFloat(comp.getPropertyValue("margin-"+left))+parseFloat(comp.getPropertyValue("margin-"+right)); if(parseInt(szerokosc)>parseInt(width_rodzic)){ str.css('position','static'); }else{ str.css('position','relative'); } } } for(var i in pozycje_paskow){ pozycje_paskow[i][0].scrollTop=pozycje_paskow[i][1]; pozycje_paskow[i][0].scrollLeft=pozycje_paskow[i][2]; } }; element_g.classList.add('mw-optimal-js'); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var visibility=comp.getPropertyValue("visibility"); if(visibility=="hidden"){return;} var position=comp.getPropertyValue("position"); if(position!="absolute"){return;} var optimal_x=$(element_g).hasClass('mw-optimal-x'); var optimal_y=$(element_g).hasClass('mw-optimal-y'); if(optimal_x){ FunOptimalXY("width","left","right"); } if(optimal_y){ FunOptimalXY("height","top","bottom"); } }); } $(function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); $(window).on("scroll",function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); $(window).on("resize",function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); /*Uruchamianie dodatkowych funkcji, niż standardowe, w href w linkach rozwijanej tabeli TABLE lub ramki DIV, jeśli ona generuje zwiększenie rozmiarów, aby w rodzicu pojawił się pasek przewijania, z dodatkowymi opcjami generowanej przez arkusz kalkulacyjny CSS*/ Common.RamkiTableIDiv=function(obiekt,id_tabeli_lub_ramki,id_nazwa_a,fun_obiektu){ $(obiekt).each(function(i,element_f){ return new Promise(function(resolve,reject){ var czas=0; function Czekaj(){ if(czas>30000){ reject(); } var collapsebutton=$(element_f).find('a#'+id_nazwa_a+i); if((collapsebutton!==null)&&(collapsebutton.length>0)){ var tabele_lub_ramki=collapsebutton.parents('#'+id_tabeli_lub_ramki+i); if((tabele_lub_ramki===null)||(tabele_lub_ramki.length==0)){reject();} resolve(i); }else{ czas+=100; setTimeout(Czekaj,100); } } Czekaj(); }).then(function(i){ $('*.mw-overflow-x a#'+id_nazwa_a+i+', *.mw-overflow-y a#'+id_nazwa_a+i).each(function(j,element_g){ var href=element_g.getAttribute('href'); if((href!=null)&&(href!="")){ var col="[\\s;\\(\\,]*javascript:"+fun_obiektu.replace(/\./g,"\\.")+"\\s*\\(\\s*"+i+"\\s*\\)[\\s;\\)\\,]*"; var re_frame = new RegExp(col,'g'); var re_javascript=new RegExp("^[\\s;]*javascript:"); if((re_javascript.test(href))&&(re_frame.test(href))){ element_g.setAttribute('href',href.replace(/[;\s]*$/g,"")+';javascript:Common.ScrollBarOverflow();javascript:Common.StickyXY();javascript:Common.OptimalXY()') } } }); }).catch(function(){}); }); }; /*Dla menu rozwijanego tabeli TABLE zdefiniowanej na stronie MediaWiki:Common.js*/ Common.RamkiTableIDiv("table.collapsible",'collapsibleTable','collapseButton','Common.collapseTable'); /*Dla menu rozwijanej ramki DIV zdefiniowanej na stronie MediaWiki:Common.js*/ Common.RamkiTableIDiv("div.NavFrame",'NavFrame','NavToggle','Common.toggleNavigationBar'); /*Koniec dodatkowych funkcji*/ /*Uruchamianie dodatkowych zdarzeń do Common.StickyXY i OptimalXY*/ Common.ZdarzeniaDodatkoweFunkcyjneXY=function(css,fun_zdarz){ var fun_css=$(css); fun_css.on('mouseenter',fun_zdarz); fun_css.on('mouseleave',fun_zdarz); fun_css.on('transitionstart',fun_zdarz); fun_css.on('webkittransitionstart',fun_zdarz); fun_css.on('moztransitionstart',fun_zdarz); fun_css.on('otransitionstart',fun_zdarz); fun_css.on('transitionrun',fun_zdarz); fun_css.on('webkittransitionrun',fun_zdarz); fun_css.on('moztransitionrun',fun_zdarz); fun_css.on('otransitionrun',fun_zdarz); fun_css.on('transitioncancel',fun_zdarz); fun_css.on('webkittransitioncancel',fun_zdarz); fun_css.on('moztransitioncancel',fun_zdarz); fun_css.on('otransitioncancel',fun_zdarz); fun_css.on('transitionend',fun_zdarz); fun_css.on('webkittransitionend',fun_zdarz); fun_css.on('moztransitionend',fun_zdarz); fun_css.on('otransitionend',fun_zdarz); }; Common.ZdarzeniaDodatkoweFunkcyjneXY("*.mw-sticky-x, *.mw-sticky-y",Common.StickyXY); Common.ZdarzeniaDodatkoweFunkcyjneXY('*.mw-optimal-x, *.mw-optimal-y',Common.OptimalXY); /*Koniec dodatkowych zdarzeń*/ /*Program do obsługi szablonu StronaStart i jego pokrewnych książkowych*/ Common.StronaStart=function(){ var elements=$('.strona_start .strona .ciało_zawartości > .menu > .menu_boks'); elements.parent().show(); $('.strona_start').find('.strona_lewa .nawigacja_boksy, .strona_prawa .nawigacja_boksy').each(function(i,element){ $(element).css('visibility',"hidden"); }); $('.strona_start').find('.strona_lewa .nawigacja_spis, .strona_prawa .nawigacja_spis').each(function(i,element){ var czy_visible=$(element).css('visibility'); $(element).css('visibility',"visible"); var str=$(element).parents('.strona_prawa, .strona_lewa').first(); str.css('position','relative'); str.addClass('strona_start-nawigacja_spis'); str.removeClass('strona_start-nawigacja_boksy'); if(czy_visible=="hidden"){ $(Common.ScrollBarOverflow); $(Common.StickyXY); } }); function StronaStartFun(){ var id=this; $(id).parents('.strona_start').first().find('.strona .ciało_zawartości > .menu > .menu_boks').children().each(function(i,element){ var display=$(element).css('display'); if(display=="none"){ $(element).css('display',"block"); }else{ $(element).css('display',"none"); } }); $(id).parents('.strona_start').first().find('.strona_lewa, .strona_prawa').children().each(function(i,element){ var visibility=window.getComputedStyle(element, null).getPropertyValue('visibility'); if(visibility=="hidden"){ $(element).css('visibility',"visible"); var str=$(element).parents('.strona_prawa, .strona_lewa').first(); if($(element).hasClass('nawigacja_boksy')){ str.css('position','static'); str.addClass('strona_start-nawigacja_boksy'); str.removeClass('strona_start-nawigacja_spis'); $(Common.ScrollBarOverflow); $(Common.OptimalXY); }else if($(element).hasClass('nawigacja_spis')){ str.css('position','relative'); str.addClass('strona_start-nawigacja_spis'); str.removeClass('strona_start-nawigacja_boksy'); $(Common.ScrollBarOverflow); $(Common.StickyXY); } }else{ $(element).css('visibility',"hidden"); } }); } elements.on('click',StronaStartFun); } $(Common.StronaStart); 6ycovepkfg4tbx58cyxxzl2rlce0whi 437152 437151 2022-08-07T16:36:54Z Persino 2851 javascript text/javascript mw.loader.load( '//pl.wikibooks.org/w/index.php?action=raw&ctype=text/javascript&title=Wikipedysta:Persino/Gadget-StronicowyParser.js', 'text/javascript', true ); /**/ /* Umieszczony tutaj kod JavaScript zostanie załadowany przez każdego użytkownika, podczas każdego ładowania strony. */ // Frame Busting if (top != self) top.location.href = self.location.href; /* * Zmienna Common.pageInfo, jego elementy, instrukcja obsługi: * Common.pageInfo.namespace numer przestrzeni nazw (równe wgNamespaceNumber) * Common.pageInfo.name pełna nazwa strony * Common.pageInfo.title tytuł strony, czyli ostatnia część po '/' albo jest równe pageInfo.name, gdy nigdzie nie występuje slash * Common.pageInfo.book tytuł książki * Common.pageInfo.action akcja taka jaka jest w adresie URL pod "action=", w przypadku normalnego czytania strony, action jest równe "get" * Common.pageInfo.diff null w przypadku, gdy nie porównujemy wersji, w przeciwnym wypadku wartość występującą w adresie URL */ /*Przestrzeń nazw: Common, zdefiniowanym za pomocą tablicy*/ var Common=new Array(); /*Funkcje w przestrzeni nazw Common*/ Common.Naglowek=function(){ /* Skrypt odpowiedzialny za wyświetlanie szablonu Nagłówek [[Szablon:Nagłówek]] */ var hideAll = document.getElementById('mójNagłówekUkryj'); var noFooter = false; var footers = 0; var tags = document.getElementsByTagName('div'); for (var i = 0; i < tags.length; i++) { var el=tags[i].getAttribute("id"); if (el=='mojaStopka') footers++; else if (hideAll && (el=='mójNagłówek')) { tags[i].innerHTML=""; noFooter=true; } } if (noFooter) return; var footer = document.getElementById('mojaStopka'); if ((footer !== null) && (footers==1)) { var bodyContent = document.getElementById('bodyContent'); if (bodyContent !== null) { var s0=document.getElementById('mojaStopka0'); var s1=document.getElementById('mojaStopka1'); if ((s1 !== null) || ((s0 === null) && (bodyContent.innerHTML.length>8000))){ var strona=document.getElementById('strona'); if(strona!==null){ strona.appendChild(footer); }else{ var catlinks=document.getElementById('catlinks'); if(catlinks !== null){ bodyContent.insertBefore(footer,catlinks); }else{ bodyContent.appendChild(footer); } } } } } /* Koniec skryptu odpowiedzialnego za wyświetlanie szablonu Nagłówek [[Szablon:Nagłówek]] */ }; $(Common.Naglowek); /*Informacje o danej stronie*/ Common.PageInfoInit=function(){ var _g = /_/g; this.name = mw.config.get('wgPageName').replace(/_/g, ' '); this.namespace = mw.config.get('wgNamespaceNumber'); var i = this.name.search(/\/[^\/]*$/g); this.title = this.name.slice(i + 1); this.book = this.name.replace(/\/.*/g, ""); if ( document.URL.search("//pl.wikibooks.org/w/index.php") != -1 ) { re = /\&diff=/g; this.diff = re.test(document.URL); re = /\&action=[^\&]*/g; this.action = document.URL.match(re); if ( this.action === null ) { this.action = 'get'; } else { this.action = this.action[0].slice(8, this.action[0].length); } } else { this.diff = null; this.action = 'get'; } } Common.pageInfo = new Common.PageInfoInit(); /** Collapsible tables ********************************************************* * * Description: Allows tables to be collapsed, showing only the header. See * [[en:Wikipedia:NavFrame]]. * Maintainers: [[User:R. Koot]] */ Common.autoCollapse = 2; Common.collapseCaption = "ukryj"; Common.expandCaption = "pokaż"; Common.collapseTable=function( tableIndex ) { var Button = document.getElementById( "collapseButton" + tableIndex ); var Table = document.getElementById( "collapsibleTable" + tableIndex ); if ( !Table || !Button ) { return false; } var Rows = Table.rows; if ( Button.firstChild.data == Common.collapseCaption ) { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = "none"; } Button.firstChild.data = Common.expandCaption; } else { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = Rows[0].style.display; } Button.firstChild.data = Common.collapseCaption; } } Common.createCollapseButtons=function() { var tableIndex = 0; var NavigationBoxes = new Object(); var Tables = document.getElementsByTagName( "table" ); for ( var i = 0; i < Tables.length; i++ ) { if ( $(Tables[i]).hasClass( "collapsible" ) ) { /* only add button and increment count if there is a header row to work with */ var HeaderRow = Tables[i].getElementsByTagName( "tr" )[0]; if (!HeaderRow) continue; var Header = HeaderRow.getElementsByTagName( "th" )[0]; if (!Header) continue; NavigationBoxes[ tableIndex ] = Tables[i]; Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex ); var Button = document.createElement( "span" ); var ButtonLink = document.createElement( "a" ); var ButtonText = document.createTextNode( Common.collapseCaption ); Button.style.styleFloat = "right"; Button.style.cssFloat = "right"; Button.style.fontWeight = "normal"; Button.style.textAlign = "right"; Button.style.width = "6em"; ButtonLink.style.color = Header.style.color; ButtonLink.setAttribute( "id", "collapseButton" + tableIndex ); ButtonLink.setAttribute( "href", "javascript:Common.collapseTable(" + tableIndex + ");" ); ButtonLink.appendChild( ButtonText ); Button.appendChild( document.createTextNode( "[" ) ); Button.appendChild( ButtonLink ); Button.appendChild( document.createTextNode( "]" ) ); $(Header.childNodes[0]).has('a#collapseButton' + tableIndex).each(function(i,element){ $(element).remove(); }); Header.insertBefore( Button, Header.childNodes[0]); tableIndex++; } } for ( var i = 0; i < tableIndex; i++ ) { if ( $(NavigationBoxes[i]).hasClass( "collapsed" ) || ( tableIndex >= Common.autoCollapse && $(NavigationBoxes[i]).hasClass( "Common.autoCollapse" ) ) ) { collapseTable( i ); } else if ( $(NavigationBoxes[i]).hasClass( "innercollapse" ) ) { var element = NavigationBoxes[i]; while (element = element.parentNode) { if ( $(element).hasClass( "outercollapse" ) ) { collapseTable ( i ); break; } } } } } $(Common.createCollapseButtons ); /** Dynamic Navigation Bars (experimental) ************************************* * * Description: See [[Wikipedia:NavFrame]]. * Maintainers: UNMAINTAINED */ // set up the words in your language Common.NavigationBarHide = '[' + Common.collapseCaption + ']'; Common.NavigationBarShow = '[' + Common.expandCaption + ']'; // shows and hides content and picture (if available) of navigation bars // Parameters: // indexNavigationBar: the index of navigation bar to be toggled Common.toggleNavigationBar=function(indexNavigationBar) { var NavToggle = document.getElementById("NavToggle" + indexNavigationBar); var NavFrame = document.getElementById("NavFrame" + indexNavigationBar); if (!NavFrame || !NavToggle) { return false; } // if shown now if (NavToggle.firstChild.data == Common.NavigationBarHide) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) ) { NavChild.style.display = 'none'; } if ( $(NavChild).hasClass( 'NavContent') ) { NavChild.style.display = 'none'; } } NavToggle.firstChild.data = Common.NavigationBarShow; // if hidden now } else if (NavToggle.firstChild.data == Common.NavigationBarShow) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ($(NavChild).hasClass( 'NavPic')) { NavChild.style.display = 'block'; } if ($(NavChild).hasClass( 'NavContent')) { NavChild.style.display = 'block'; } } NavToggle.firstChild.data = Common.NavigationBarHide; } } // adds show/hide-button to navigation bars Common.createNavigationBarToggleButton=function() { var indexNavigationBar = 0; // iterate over all < div >-elements var divs = document.getElementsByTagName("div"); for (var i = 0; NavFrame = divs[i]; i++) { // if found a navigation bar if ($(NavFrame).hasClass( "NavFrame")) { indexNavigationBar++; var NavToggle = document.createElement("a"); NavToggle.className = 'NavToggle'; NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar); NavToggle.setAttribute('href', 'javascript:Common.toggleNavigationBar(' + indexNavigationBar + ');'); var isCollapsed = $(NavFrame).hasClass( "collapsed" ); /* * Check if any children are already hidden. This loop is here for backwards compatibility: * the old way of making NavFrames start out collapsed was to manually add style="display:none" * to all the NavPic/NavContent elements. Since this was bad for accessibility (no way to make * the content visible without JavaScript support), the new recommended way is to add the class * "collapsed" to the NavFrame itself, just like with collapsible tables. */ for (var NavChild = NavFrame.firstChild; NavChild != null && !isCollapsed; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) || $(NavChild).hasClass( 'NavContent' ) ) { if ( NavChild.style.display == 'none' ) { isCollapsed = true; } } } if (isCollapsed) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) || $(NavChild).hasClass( 'NavContent' ) ) { NavChild.style.display = 'none'; } } } var NavToggleText = document.createTextNode(isCollapsed ? Common.NavigationBarShow : Common.NavigationBarHide); NavToggle.appendChild(NavToggleText); // Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked) for(var j=0; j < NavFrame.childNodes.length; j++) { if ($(NavFrame.childNodes[j]).hasClass( "NavHead")) { $(NavFrame.childNodes[j]).children('a.NavToggle#NavToggle' + indexNavigationBar).each(function(i,element){ $(element).remove(); }); NavFrame.childNodes[j].appendChild(NavToggle); } } NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar); } } } $(Common.createNavigationBarToggleButton ); // Wyszukiwanie Google na stronach podręczników Common.googleSearchInitialized = false; Common.insertGoogleSearch=function() { if ( mw.config.get('wgNamespaceNumber') != 0 || Common.googleSearchInitialized ) { return; } Common.googleSearchInitialized = true; var google = "http://www.google.com/custom?sa=Google+Search&domains=pl.wikibooks.org/wiki/PAGE&sitesearch=pl.wikibooks.org/wiki/PAGE"; var ul = jQuery('#p-tb ul')[0]; if (!ul) { return; } var link = document.createElement('a'); var book = Common.pageInfo.book; if ( book.length == 1 || book.indexOf('++') != -1 || encodeURIComponent(book) != book ) { google = "http://www.google.com/custom?sa=Google+Search&domains=pl.wikibooks.org/wiki/&sitesearch=pl.wikibooks.org/wiki/&q=%22PAGE%22" } link.href = google.replace(/PAGE/g, encodeURIComponent(book)); link.appendChild(document.createTextNode("Szukaj w podręczniku")); var li = document.createElement('li'); li.id = "google-trick-search"; li.appendChild(link); $(ul).children('li#google-trick-search').each(function(i,element){ $(element).remove(); }); ul.insertBefore(li, ul.firstChild); } $(Common.insertGoogleSearch); /*Funkcja do liczenia, czy nastąpiło przepełnienie poziome lub pionowe*/ Common.PobierzSzerokoscPaskaPrzewijania=function(x_box_right){ var div = $('<div style="width:50px;height:50px;overflow:hidden;position:absolute;top:-200px;left:-200px;"><div style="height:100px;"></div></div>'); $('body').append(div); var w1 = $('div', div).innerWidth(); div.css('overflow-'+(x_box_right||"y"), 'scroll'); var w2 = $('div', div).innerWidth(); $(div).remove(); return (w1 - w2); } /*Funkcje do obsługi pasków przewijania*/ Common.ScrollBarOverflow=function(){ $('*.mw-overflow-x, *.mw-overflow-y').each(function(i,element_g){ /*start overflow*/ var comp=window.getComputedStyle(element_g, null); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var overflow=comp.getPropertyValue("overflow"); var overflow_x=$(element_g).hasClass('mw-overflow-x'); if(overflow_x){ var overflowX=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); if((overflowX)&&(overflowX=="auto")){ element_g.classList.remove("mw-scrollbar-overflow-x"); const hasHorizontalScrollbar = element_g.scrollWidth > element_g.clientWidth; // true lub false if(hasHorizontalScrollbar){ element_g.classList.add("mw-scrollbar-overflow-x"); } } } var overflow_y=$(element_g).hasClass('mw-overflow-y'); if(overflow_y){ var overflowY=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflowY)&&(overflowY=="auto")){ element_g.classList.remove("mw-scrollbar-overflow-y"); const hasVerticalScrollbar = element_g.scrollHeight > element_g.clientHeight; // true lub false if(hasVerticalScrollbar){ element_g.classList.add("mw-scrollbar-overflow-y"); } } } /*koniec overflow*/ }); } $(function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); $(window).on('scroll', function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); $(window).on('resize', function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); /*Funkcja symulująca właściwości position:sticky, wszędzie tam, gdzie nie można go użyć.*/ Common.StickyXY=function(){ $('*.mw-sticky-x, *.mw-sticky-y').each(function(i,element_g){ var comp=window.getComputedStyle(element_g, null); function FunStickyXY(height,top,bottom,width_box,left_box,right_box,x_box,x_box_right){ var pozycje_paskow=new Array(); $(element_g).find('*').each(function(i,element){ var comp=window.getComputedStyle(element, null); var overflow=comp.getPropertyValue("overflow"); var overflow_x=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); var overflow_y=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflow_x=="auto")||(overflow_x=="scroll")||(overflow_y=="auto")||(overflow_y=="scroll")){ pozycje_paskow.push(new Array(element,element.scrollTop,element.scrollLeft)); } }); var height_sticky=0; $('html.client-js.vector-sticky-header-enabled body.skin-vector-search-vue.vector-sticky-header-visible header.vector-sticky-header').each(function(i,el){ var rect_sticky=el.getBoundingClientRect(); height_sticky=parseInt(rect_sticky[height]); }); var StickyXYTopOld=$(element_g).data('sctickyXYOld-top');var StickyXYBottomOld=$(element_g).data('sctickyXYOld-bottom'); if(StickyXYTopOld===undefined){ var topold_war=parseFloat(element_g.style[top]); $(element_g).data('sctickyXYOld-top',((!isNaN(topold_war))?topold_war:0)); } if(StickyXYBottomOld===undefined){ var bottomold_war=parseFloat(element_g.style[bottom]); $(element_g).data('sctickyXYOld-bottom',((!isNaN(bottomold_war))?bottomold_war:0)); } var topold=$(element_g).data('sctickyXYOld-top')+height_sticky+5; var margintop=parseFloat(comp.getPropertyValue("margin-"+top)); margintop=((!isNaN(margintop))?margintop:0); var marginbottom=parseFloat(comp.getPropertyValue("margin-"+bottom)); marginbottom=((!isNaN(marginbottom))?marginbottom:0); var przodek_height=undefined; element_g.style[height]="auto"; element_g.style["max"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[top]="auto"; element_g.style[bottom]="auto"; if(width_box!=null){ element_g.style[width_box]="auto"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[left_box]="auto"; element_g.style[right_box]="0"; $(element_g).find('.mw-not-overflow-'+x_box+'.mw-overflow-'+x_box).each(function(i,element){ element.style[width_box]="auto"; }); } var parents_node_fun=$(element_g).parents('.mw-parent-node').first(); if((parents_node_fun==null)||(parents_node_fun.length==0)){return;} var width_rodzic=null; var rodzic_element=undefined; var comp_rodz; parents_node_fun.each(function(i,element){ comp_rodz=window.getComputedStyle(element,null); przodek_height=parseFloat(comp_rodz.getPropertyValue([height])); width_rodzic=width_box?parseFloat(comp_rodz.getPropertyValue([width_box])):null; rodzic_element=element; }); var height_box_real=parseFloat(comp.getPropertyValue(height)); var rect_dziecko=element_g.getBoundingClientRect(); var wys=document.documentElement["client"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]; var rect_rodzic; parents_node_fun.each(function(i,element){ rect_rodzic=element.getBoundingClientRect(); }); var top_ab=rect_rodzic[top]; var bottom_ab=(wys-rect_rodzic[bottom]); element_g.style["max"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=((Math.min(przodek_height,wys-((rect_rodzic[top]>=0)?(rect_rodzic[top]):(0))-((bottom_ab>=0)?(bottom_ab):(0)))-(((top_ab<=0)?(topold):(Math.max(0,topold-top_ab)))+((bottom_ab<=0)?($(element_g).data('sctickyXYOld-bottom')+5):(Math.max(0,$(element_g).data('sctickyXYOld-bottom')+5-bottom_ab)))+marginbottom+margintop))*(height_box_real/rect_dziecko[height]))+"px"; element_g.style[height]=(element_g["offset"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))])+"px"; var top_obj=(((top_ab>=0)?0:(-top_ab)))+((top_ab<=0)?(topold):(Math.max(0,topold-top_ab))); element_g.style[top]=top_obj+"px"; element_g.style[bottom]="auto"; if(width_box!=null){ element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; rodzic_element.style.position="static"; rodzic_element.style.overflow="hidden"; var width_box_real=parseFloat(comp.getPropertyValue(width_box)); var rect_dziecko=element_g.getBoundingClientRect(); if(parseInt(width_box_real)>parseInt(rect_dziecko[width_box])){ if(width_box=="width"){ element_g.classList.remove('mw-scrollbar-overflow-x'); }else{ element_g.classList.remove('mw-scrollbar-overflow-y'); } if(rect_dziecko[width_box]>width_rodzic){ if(width_box=="width"){ element_g.classList.add('mw-scrollbar-overflow-x'); }else{ element_g.classList.add('mw-scrollbar-overflow-y'); } } var width_box_real=parseFloat(comp.getPropertyValue(width_box)); var margin_all=parseFloat(comp.getPropertyValue("margin-"+left_box))+parseFloat(comp.getPropertyValue("margin-"+right_box)); margin_all+=parseFloat(comp_rodz.getPropertyValue("padding-"+left_box))+parseFloat(comp_rodz.getPropertyValue("padding-"+right_box)); var dlugosc=(width_rodzic-margin_all); dlugosc=((dlugosc>=0)?dlugosc:0); element_g.style.whiteSpace="nowrap"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width_box]))+"px"; element_g.style[width_box]=width_box_real+"px"; Common.ScrollBarOverflow(); $(element_g).find('.mw-overflow-'+x_box+'.mw-not-overflow-'+x_box+'.mw-scrollbar-overflow-'+x_box).each(function(i,element){ var comp_element=window.getComputedStyle(element, null) element.style[width_box]=(element["scroll"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]+Common.PobierzSzerokoscPaskaPrzewijania(x_box_right)+parseFloat(comp_element.getPropertyValue('padding-'+left_box))+parseFloat(comp_element.getPropertyValue('padding-'+right_box)))+"px"; element.classList.remove('mw-scrollbar-overflow-'+x_box_right); }); element_g.style.whiteSpace="normal"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[width_box]="auto"; var rect_dziecko=element_g.getBoundingClientRect(); var width_box_real=parseFloat(comp.getPropertyValue(width_box)); element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width_box]))+"px"; element_g.style[width_box]=width_box_real+"px"; element_g.style[left_box]="0"; element_g.style[right_box]="auto"; rodzic_element.style.position="relative"; }else{ element_g.style.whiteSpace="nowrap"; var szerokosc_box=rect_dziecko[width_box]; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(szerokosc_box)+"px"; element_g.style[width_box]=(szerokosc_box)+"px"; Common.ScrollBarOverflow(); $(element_g).find('.mw-overflow-'+x_box+'.mw-not-overflow-'+x_box+'.mw-scrollbar-overflow-'+x_box).each(function(i,element){ var comp_element=window.getComputedStyle(element, null); element.style[width_box]=(element["scroll"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]+Common.PobierzSzerokoscPaskaPrzewijania(x_box_right)+parseFloat(comp_element.getPropertyValue('padding-'+left_box))+parseFloat(comp_element.getPropertyValue('padding-'+right_box)))+"px"; element.classList.remove('mw-scrollbar-overflow-'+x_box_right); }); element_g.style.whiteSpace="normal"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[width_box]="auto"; var rect_dziecko=element_g.getBoundingClientRect(); var szerokosc_box=rect_dziecko[width_box]; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(szerokosc_box)+"px"; element_g.style[width_box]=(szerokosc_box)+"px"; var szerokosc=rect_dziecko[width_box]+parseFloat(comp.getPropertyValue("margin-"+left_box))+parseFloat(comp.getPropertyValue("margin-"+right_box)); if(parseInt(szerokosc)>parseInt(width_rodzic)){ element_g.style[right_box]="0"; element_g.style[left_box]="auto"; rodzic_element.style.overflow="visible"; }else{ element_g.style[left_box]="0"; element_g.style[right_box]="auto"; rodzic_element.style.position="relative"; } } } element_g.style[height]="auto"; element_g.style[height]=(element_g["offset"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))])+"px"; Common.ScrollBarOverflow(); for(var i in pozycje_paskow){ pozycje_paskow[i][0].scrollTop=pozycje_paskow[i][1]; pozycje_paskow[i][0].scrollLeft=pozycje_paskow[i][2]; } } element_g.classList.add('mw-sticky-js'); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var visibility=comp.getPropertyValue("visibility"); if(visibility=="hidden"){return;} var position=comp.getPropertyValue("position"); if(position!="absolute"){return;} var sticky_x=$(element_g).hasClass('mw-sticky-x'); var sticky_y=$(element_g).hasClass('mw-sticky-y'); if((sticky_x)&&(!sticky_y)){ var str=$(element_g).parents('.strona_górna, .strona_dolna').first(); if(str.hasClass('strona_górna')){ FunStickyXY("width","left","right","height","top","bottom","y","x"); }else if(str.hasClass('strona_dolna')){ FunStickyXY("width","left","right","height","bottom","top","x","y"); } }else if((!sticky_x)&&(sticky_y)){ var str=$(element_g).parents('.strona_prawa, .strona_lewa').first(); if(str.hasClass('strona_prawa')){ FunStickyXY("height","top","bottom","width","left","right","x","y"); }else if(str.hasClass('strona_lewa')){ FunStickyXY("height","top","bottom","width","right","left","x","y"); } }else{ FunStickyXY("width","left","right",null); FunStickyXY("height","top","bottom",null); } }); } $(function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); $(window).on('scroll', function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); $(window).on('resize', function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); /*Funkcja do ustawiania maksymalnego rozmiaru dziecka, względem rodzica, przy position:absolute*/ Common.OptimalXY=function(){ $('*.mw-optimal-x, *.mw-optimal-y').each(function(i,element_g){ var comp=window.getComputedStyle(element_g, null); function FunOptimalXY(width,left,right){ var pozycje_paskow=new Array(); $(element_g).find('*').each(function(i,element){ var comp=window.getComputedStyle(element, null); var overflow=comp.getPropertyValue("overflow"); var overflow_x=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); var overflow_y=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflow_x=="auto")||(overflow_x=="scroll")||(overflow_y=="auto")||(overflow_y=="scroll")){ pozycje_paskow.push(new Array(element,element.scrollTop,element.scrollLeft)); } }); var width_rodzic=null; var rodzic_node; var comp_rodz; $(element_g).parents('.mw-parent-node').first().each(function(i,element){ comp_rodz=window.getComputedStyle(element,null); width_rodzic=parseFloat(comp_rodz.getPropertyValue([width])); rodzic_node=element; }); if((width_rodzic!=null)&&(!isNaN(width_rodzic))){ element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; var width_box_real=parseFloat(comp.getPropertyValue(width)); var rect_dziecko=element_g.getBoundingClientRect(); if(width=="width"){ element_g.classList.remove('mw-scrollbar-overflow-x'); }else{ element_g.classList.remove('mw-scrollbar-overflow-y'); } if(parseInt(width_box_real)>parseInt(rect_dziecko[width])){ var rect_dziecko=element_g.getBoundingClientRect(); if(rect_dziecko[width]>width_rodzic){ if(width=="width"){ element_g.classList.add('mw-scrollbar-overflow-x'); }else{ element_g.classList.add('mw-scrollbar-overflow-y'); } } var width_box_real=parseFloat(comp.getPropertyValue(width)); var margin_all=parseFloat(comp.getPropertyValue("margin-"+left))+parseFloat(comp.getPropertyValue("margin-"+right)); margin_all+=parseFloat(comp_rodz.getPropertyValue("padding-"+left))+parseFloat(comp_rodz.getPropertyValue("padding-"+right)); var dlugosc=(width_rodzic-margin_all); dlugosc=((dlugosc>=0)?dlugosc:0); element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width]))+"px"; }else{ element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(rect_dziecko[width])+"px"; } var str=$(element_g).parents('.strona_prawa, .strona_lewa, .strona_górna, .strona_dolna').first(); if(!str.hasClass('strona_start-nawigacja_boksy')){ var rect_dziecko=element_g.getBoundingClientRect(); var szerokosc=rect_dziecko[width]+parseFloat(comp.getPropertyValue("margin-"+left))+parseFloat(comp.getPropertyValue("margin-"+right)); if(parseInt(szerokosc)>parseInt(width_rodzic)){ str.css('position','static'); }else{ str.css('position','relative'); } } } for(var i in pozycje_paskow){ pozycje_paskow[i][0].scrollTop=pozycje_paskow[i][1]; pozycje_paskow[i][0].scrollLeft=pozycje_paskow[i][2]; } }; element_g.classList.add('mw-optimal-js'); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var visibility=comp.getPropertyValue("visibility"); if(visibility=="hidden"){return;} var position=comp.getPropertyValue("position"); if(position!="absolute"){return;} var optimal_x=$(element_g).hasClass('mw-optimal-x'); var optimal_y=$(element_g).hasClass('mw-optimal-y'); if(optimal_x){ FunOptimalXY("width","left","right"); } if(optimal_y){ FunOptimalXY("height","top","bottom"); } }); } $(function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); $(window).on("scroll",function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); $(window).on("resize",function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); /*Uruchamianie dodatkowych funkcji, niż standardowe, w href w linkach rozwijanej tabeli TABLE lub ramki DIV, jeśli ona generuje zwiększenie rozmiarów, aby w rodzicu pojawił się pasek przewijania, z dodatkowymi opcjami generowanej przez arkusz kalkulacyjny CSS*/ Common.RamkiTableIDiv=function(obiekt,id_tabeli_lub_ramki,id_nazwa_a,fun_obiektu){ $(obiekt).each(function(i,element_f){ return new Promise(function(resolve,reject){ var czas=0; function Czekaj(){ if(czas>30000){ reject(); } var collapsebutton=$(element_f).find('a#'+id_nazwa_a+i); if((collapsebutton!==null)&&(collapsebutton.length>0)){ var tabele_lub_ramki=collapsebutton.parents('#'+id_tabeli_lub_ramki+i); if((tabele_lub_ramki===null)||(tabele_lub_ramki.length==0)){reject();} resolve(i); }else{ czas+=100; setTimeout(Czekaj,100); } } Czekaj(); }).then(function(i){ $('*.mw-overflow-x a#'+id_nazwa_a+i+', *.mw-overflow-y a#'+id_nazwa_a+i).each(function(j,element_g){ var href=element_g.getAttribute('href'); if((href!=null)&&(href!="")){ var col="[\\s;\\(\\,]*javascript:"+fun_obiektu.replace(/\./g,"\\.")+"\\s*\\(\\s*"+i+"\\s*\\)[\\s;\\)\\,]*"; var re_frame = new RegExp(col,'g'); var re_javascript=new RegExp("^[\\s;]*javascript:"); if((re_javascript.test(href))&&(re_frame.test(href))){ element_g.setAttribute('href',href.replace(/[;\s]*$/g,"")+';javascript:Common.ScrollBarOverflow();javascript:Common.StickyXY();javascript:Common.OptimalXY()') } } }); }).catch(function(){}); }); }; /*Dla menu rozwijanego tabeli TABLE zdefiniowanej na stronie MediaWiki:Common.js*/ Common.RamkiTableIDiv("table.collapsible",'collapsibleTable','collapseButton','Common.collapseTable'); /*Dla menu rozwijanej ramki DIV zdefiniowanej na stronie MediaWiki:Common.js*/ Common.RamkiTableIDiv("div.NavFrame",'NavFrame','NavToggle','Common.toggleNavigationBar'); /*Koniec dodatkowych funkcji*/ /*Uruchamianie dodatkowych zdarzeń do Common.StickyXY i OptimalXY*/ Common.ZdarzeniaDodatkoweFunkcyjneXY=function(css,fun_zdarz){ var fun_css=$(css); fun_css.on('mouseenter',fun_zdarz); fun_css.on('mouseleave',fun_zdarz); fun_css.on('transitionstart',fun_zdarz); fun_css.on('webkittransitionstart',fun_zdarz); fun_css.on('moztransitionstart',fun_zdarz); fun_css.on('otransitionstart',fun_zdarz); fun_css.on('transitionrun',fun_zdarz); fun_css.on('webkittransitionrun',fun_zdarz); fun_css.on('moztransitionrun',fun_zdarz); fun_css.on('otransitionrun',fun_zdarz); fun_css.on('transitioncancel',fun_zdarz); fun_css.on('webkittransitioncancel',fun_zdarz); fun_css.on('moztransitioncancel',fun_zdarz); fun_css.on('otransitioncancel',fun_zdarz); fun_css.on('transitionend',fun_zdarz); fun_css.on('webkittransitionend',fun_zdarz); fun_css.on('moztransitionend',fun_zdarz); fun_css.on('otransitionend',fun_zdarz); }; Common.ZdarzeniaDodatkoweFunkcyjneXY("*.mw-sticky-x, *.mw-sticky-y",Common.StickyXY); Common.ZdarzeniaDodatkoweFunkcyjneXY('*.mw-optimal-x, *.mw-optimal-y',Common.OptimalXY); /*Koniec dodatkowych zdarzeń*/ /*Program do obsługi szablonu StronaStart i jego pokrewnych książkowych*/ Common.StronaStart=function(){ var elements=$('.strona_start .strona .ciało_zawartości > .menu > .menu_boks'); elements.parent().show(); $('.strona_start').find('.strona_lewa .nawigacja_boksy, .strona_prawa .nawigacja_boksy').each(function(i,element){ $(element).css('visibility',"hidden"); }); $('.strona_start').find('.strona_lewa .nawigacja_spis, .strona_prawa .nawigacja_spis').each(function(i,element){ var czy_visible=$(element).css('visibility'); $(element).css('visibility',"visible"); var str=$(element).parents('.strona_prawa, .strona_lewa').first(); str.css('position','relative'); str.addClass('strona_start-nawigacja_spis'); str.removeClass('strona_start-nawigacja_boksy'); if(czy_visible=="hidden"){ $(Common.ScrollBarOverflow); $(Common.StickyXY); } }); function StronaStartFun(){ var id=this; $(id).parents('.strona_start').first().find('.strona .ciało_zawartości > .menu > .menu_boks').children().each(function(i,element){ var display=$(element).css('display'); if(display=="none"){ $(element).css('display',"block"); }else{ $(element).css('display',"none"); } }); $(id).parents('.strona_start').first().find('.strona_lewa, .strona_prawa').children().each(function(i,element){ var visibility=window.getComputedStyle(element, null).getPropertyValue('visibility'); if(visibility=="hidden"){ $(element).css('visibility',"visible"); var str=$(element).parents('.strona_prawa, .strona_lewa').first(); if($(element).hasClass('nawigacja_boksy')){ str.css('position','static'); str.addClass('strona_start-nawigacja_boksy'); str.removeClass('strona_start-nawigacja_spis'); $(Common.ScrollBarOverflow); $(Common.OptimalXY); }else if($(element).hasClass('nawigacja_spis')){ str.css('position','relative'); str.addClass('strona_start-nawigacja_spis'); str.removeClass('strona_start-nawigacja_boksy'); $(Common.ScrollBarOverflow); $(Common.StickyXY); } }else{ $(element).css('visibility',"hidden"); } }); } elements.on('click',StronaStartFun); } $(Common.StronaStart); ao9qvce7i6cvqnn189amvs6ifv5z69r 437153 437152 2022-08-07T16:44:05Z Persino 2851 javascript text/javascript mw.loader.load( '//pl.wikibooks.org/w/index.php?action=raw&ctype=text/javascript&title=Wikipedysta:Persino/Gadget-StronicowyParser.js', 'text/javascript', true ); /**/ /* Umieszczony tutaj kod JavaScript zostanie załadowany przez każdego użytkownika, podczas każdego ładowania strony. */ // Frame Busting if (top != self) top.location.href = self.location.href; /* * Zmienna Common.pageInfo, jego elementy, instrukcja obsługi: * Common.pageInfo.namespace numer przestrzeni nazw (równe wgNamespaceNumber) * Common.pageInfo.name pełna nazwa strony * Common.pageInfo.title tytuł strony, czyli ostatnia część po '/' albo jest równe pageInfo.name, gdy nigdzie nie występuje slash * Common.pageInfo.book tytuł książki * Common.pageInfo.action akcja taka jaka jest w adresie URL pod "action=", w przypadku normalnego czytania strony, action jest równe "get" * Common.pageInfo.diff null w przypadku, gdy nie porównujemy wersji, w przeciwnym wypadku wartość występującą w adresie URL */ /*Przestrzeń nazw: Common, zdefiniowanym za pomocą tablicy*/ var Common=new Array(); /*Funkcje w przestrzeni nazw Common*/ Common.Naglowek=function(){ /* Skrypt odpowiedzialny za wyświetlanie szablonu Nagłówek [[Szablon:Nagłówek]] */ var hideAll = document.getElementById('mójNagłówekUkryj'); var noFooter = false; var footers = 0; var tags = document.getElementsByTagName('div'); for (var i = 0; i < tags.length; i++) { var el=tags[i].getAttribute("id"); if (el=='mojaStopka') footers++; else if (hideAll && (el=='mójNagłówek')) { tags[i].innerHTML=""; noFooter=true; } } if (noFooter) return; var footer = document.getElementById('mojaStopka'); if ((footer !== null) && (footers==1)) { var bodyContent = document.getElementById('bodyContent'); if (bodyContent !== null) { var s0=document.getElementById('mojaStopka0'); var s1=document.getElementById('mojaStopka1'); if ((s1 !== null) || ((s0 === null) && (bodyContent.innerHTML.length>8000))){ var strona=document.getElementById('strona'); if(strona!==null){ strona.appendChild(footer); }else{ var catlinks=document.getElementById('catlinks'); if(catlinks !== null){ bodyContent.insertBefore(footer,catlinks); }else{ bodyContent.appendChild(footer); } } } } } /* Koniec skryptu odpowiedzialnego za wyświetlanie szablonu Nagłówek [[Szablon:Nagłówek]] */ }; $(Common.Naglowek); /*Informacje o danej stronie*/ Common.PageInfoInit=function(){ var _g = /_/g; this.name = mw.config.get('wgPageName').replace(/_/g, ' '); this.namespace = mw.config.get('wgNamespaceNumber'); var i = this.name.search(/\/[^\/]*$/g); this.title = this.name.slice(i + 1); this.book = this.name.replace(/\/.*/g, ""); if ( document.URL.search("//pl.wikibooks.org/w/index.php") != -1 ) { re = /\&diff=/g; this.diff = re.test(document.URL); re = /\&action=[^\&]*/g; this.action = document.URL.match(re); if ( this.action === null ) { this.action = 'get'; } else { this.action = this.action[0].slice(8, this.action[0].length); } } else { this.diff = null; this.action = 'get'; } } Common.pageInfo = new Common.PageInfoInit(); /** Collapsible tables ********************************************************* * * Description: Allows tables to be collapsed, showing only the header. See * [[en:Wikipedia:NavFrame]]. * Maintainers: [[User:R. Koot]] */ Common.autoCollapse = 2; Common.collapseCaption = "ukryj"; Common.expandCaption = "pokaż"; Common.collapseTable=function( tableIndex ) { var Button = document.getElementById( "collapseButton" + tableIndex ); var Table = document.getElementById( "collapsibleTable" + tableIndex ); if ( !Table || !Button ) { return false; } var Rows = Table.rows; if ( Button.firstChild.data == Common.collapseCaption ) { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = "none"; } Button.firstChild.data = Common.expandCaption; } else { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = Rows[0].style.display; } Button.firstChild.data = Common.collapseCaption; } } Common.createCollapseButtons=function() { var tableIndex = 0; var NavigationBoxes = new Object(); var Tables = document.getElementsByTagName( "table" ); for ( var i = 0; i < Tables.length; i++ ) { if ( $(Tables[i]).hasClass( "collapsible" ) ) { /* only add button and increment count if there is a header row to work with */ var HeaderRow = Tables[i].getElementsByTagName( "tr" )[0]; if (!HeaderRow) continue; var Header = HeaderRow.getElementsByTagName( "th" )[0]; if (!Header) continue; NavigationBoxes[ tableIndex ] = Tables[i]; Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex ); var Button = document.createElement( "span" ); var ButtonLink = document.createElement( "a" ); var ButtonText = document.createTextNode( Common.collapseCaption ); Button.style.styleFloat = "right"; Button.style.cssFloat = "right"; Button.style.fontWeight = "normal"; Button.style.textAlign = "right"; Button.style.width = "6em"; ButtonLink.style.color = Header.style.color; ButtonLink.setAttribute( "id", "collapseButton" + tableIndex ); ButtonLink.setAttribute( "href", "javascript:Common.collapseTable(" + tableIndex + ");" ); ButtonLink.appendChild( ButtonText ); Button.appendChild( document.createTextNode( "[" ) ); Button.appendChild( ButtonLink ); Button.appendChild( document.createTextNode( "]" ) ); $(Header.childNodes[0]).has('a#collapseButton' + tableIndex).each(function(i,element){ $(element).remove(); }); Header.insertBefore( Button, Header.childNodes[0]); tableIndex++; } } for ( var i = 0; i < tableIndex; i++ ) { if ( $(NavigationBoxes[i]).hasClass( "collapsed" ) || ( tableIndex >= Common.autoCollapse && $(NavigationBoxes[i]).hasClass( "Common.autoCollapse" ) ) ) { collapseTable( i ); } else if ( $(NavigationBoxes[i]).hasClass( "innercollapse" ) ) { var element = NavigationBoxes[i]; while (element = element.parentNode) { if ( $(element).hasClass( "outercollapse" ) ) { collapseTable ( i ); break; } } } } } $(Common.createCollapseButtons ); /** Dynamic Navigation Bars (experimental) ************************************* * * Description: See [[Wikipedia:NavFrame]]. * Maintainers: UNMAINTAINED */ // set up the words in your language Common.NavigationBarHide = '[' + Common.collapseCaption + ']'; Common.NavigationBarShow = '[' + Common.expandCaption + ']'; // shows and hides content and picture (if available) of navigation bars // Parameters: // indexNavigationBar: the index of navigation bar to be toggled Common.toggleNavigationBar=function(indexNavigationBar) { var NavToggle = document.getElementById("NavToggle" + indexNavigationBar); var NavFrame = document.getElementById("NavFrame" + indexNavigationBar); if (!NavFrame || !NavToggle) { return false; } // if shown now if (NavToggle.firstChild.data == Common.NavigationBarHide) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) ) { NavChild.style.display = 'none'; } if ( $(NavChild).hasClass( 'NavContent') ) { NavChild.style.display = 'none'; } } NavToggle.firstChild.data = Common.NavigationBarShow; // if hidden now } else if (NavToggle.firstChild.data == Common.NavigationBarShow) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ($(NavChild).hasClass( 'NavPic')) { NavChild.style.display = 'block'; } if ($(NavChild).hasClass( 'NavContent')) { NavChild.style.display = 'block'; } } NavToggle.firstChild.data = Common.NavigationBarHide; } } // adds show/hide-button to navigation bars Common.createNavigationBarToggleButton=function() { var indexNavigationBar = 0; // iterate over all < div >-elements var divs = document.getElementsByTagName("div"); for (var i = 0; NavFrame = divs[i]; i++) { // if found a navigation bar if ($(NavFrame).hasClass( "NavFrame")) { indexNavigationBar++; var NavToggle = document.createElement("a"); NavToggle.className = 'NavToggle'; NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar); NavToggle.setAttribute('href', 'javascript:Common.toggleNavigationBar(' + indexNavigationBar + ');'); var isCollapsed = $(NavFrame).hasClass( "collapsed" ); /* * Check if any children are already hidden. This loop is here for backwards compatibility: * the old way of making NavFrames start out collapsed was to manually add style="display:none" * to all the NavPic/NavContent elements. Since this was bad for accessibility (no way to make * the content visible without JavaScript support), the new recommended way is to add the class * "collapsed" to the NavFrame itself, just like with collapsible tables. */ for (var NavChild = NavFrame.firstChild; NavChild != null && !isCollapsed; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) || $(NavChild).hasClass( 'NavContent' ) ) { if ( NavChild.style.display == 'none' ) { isCollapsed = true; } } } if (isCollapsed) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) || $(NavChild).hasClass( 'NavContent' ) ) { NavChild.style.display = 'none'; } } } var NavToggleText = document.createTextNode(isCollapsed ? Common.NavigationBarShow : Common.NavigationBarHide); NavToggle.appendChild(NavToggleText); // Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked) for(var j=0; j < NavFrame.childNodes.length; j++) { if ($(NavFrame.childNodes[j]).hasClass( "NavHead")) { $(NavFrame.childNodes[j]).children('a.NavToggle#NavToggle' + indexNavigationBar).each(function(i,element){ $(element).remove(); }); NavFrame.childNodes[j].appendChild(NavToggle); } } NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar); } } } $(Common.createNavigationBarToggleButton ); // Wyszukiwanie Google na stronach podręczników Common.googleSearchInitialized = false; Common.insertGoogleSearch=function() { if ( mw.config.get('wgNamespaceNumber') != 0 || Common.googleSearchInitialized ) { return; } Common.googleSearchInitialized = true; var google = "http://www.google.com/custom?sa=Google+Search&domains=pl.wikibooks.org/wiki/PAGE&sitesearch=pl.wikibooks.org/wiki/PAGE"; var ul = jQuery('#p-tb ul')[0]; if (!ul) { return; } var link = document.createElement('a'); var book = Common.pageInfo.book; if ( book.length == 1 || book.indexOf('++') != -1 || encodeURIComponent(book) != book ) { google = "http://www.google.com/custom?sa=Google+Search&domains=pl.wikibooks.org/wiki/&sitesearch=pl.wikibooks.org/wiki/&q=%22PAGE%22" } link.href = google.replace(/PAGE/g, encodeURIComponent(book)); link.appendChild(document.createTextNode("Szukaj w podręczniku")); var li = document.createElement('li'); li.id = "google-trick-search"; li.appendChild(link); $(ul).children('li#google-trick-search').each(function(i,element){ $(element).remove(); }); ul.insertBefore(li, ul.firstChild); } $(Common.insertGoogleSearch); /*Funkcja do liczenia, czy nastąpiło przepełnienie poziome lub pionowe*/ Common.PobierzSzerokoscPaskaPrzewijania=function(x_box_right){ var div = $('<div style="width:50px;height:50px;overflow:hidden;position:absolute;top:-200px;left:-200px;"><div style="height:100px;"></div></div>'); $('body').append(div); var w1 = $('div', div)["inner"+((x_box_right=="y")?"Width":"Height")](); div.css('overflow-'+(x_box_right||"y"), 'scroll'); var w2 = $('div', div)["inner"+((x_box_right=="y")?"Width":"Height")](); $(div).remove(); return (w1 - w2); } /*Funkcje do obsługi pasków przewijania*/ Common.ScrollBarOverflow=function(){ $('*.mw-overflow-x, *.mw-overflow-y').each(function(i,element_g){ /*start overflow*/ var comp=window.getComputedStyle(element_g, null); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var overflow=comp.getPropertyValue("overflow"); var overflow_x=$(element_g).hasClass('mw-overflow-x'); if(overflow_x){ var overflowX=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); if((overflowX)&&(overflowX=="auto")){ element_g.classList.remove("mw-scrollbar-overflow-x"); const hasHorizontalScrollbar = element_g.scrollWidth > element_g.clientWidth; // true lub false if(hasHorizontalScrollbar){ element_g.classList.add("mw-scrollbar-overflow-x"); } } } var overflow_y=$(element_g).hasClass('mw-overflow-y'); if(overflow_y){ var overflowY=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflowY)&&(overflowY=="auto")){ element_g.classList.remove("mw-scrollbar-overflow-y"); const hasVerticalScrollbar = element_g.scrollHeight > element_g.clientHeight; // true lub false if(hasVerticalScrollbar){ element_g.classList.add("mw-scrollbar-overflow-y"); } } } /*koniec overflow*/ }); } $(function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); $(window).on('scroll', function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); $(window).on('resize', function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); /*Funkcja symulująca właściwości position:sticky, wszędzie tam, gdzie nie można go użyć.*/ Common.StickyXY=function(){ $('*.mw-sticky-x, *.mw-sticky-y').each(function(i,element_g){ var comp=window.getComputedStyle(element_g, null); function FunStickyXY(height,top,bottom,width_box,left_box,right_box,x_box,x_box_right){ var pozycje_paskow=new Array(); $(element_g).find('*').each(function(i,element){ var comp=window.getComputedStyle(element, null); var overflow=comp.getPropertyValue("overflow"); var overflow_x=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); var overflow_y=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflow_x=="auto")||(overflow_x=="scroll")||(overflow_y=="auto")||(overflow_y=="scroll")){ pozycje_paskow.push(new Array(element,element.scrollTop,element.scrollLeft)); } }); var height_sticky=0; $('html.client-js.vector-sticky-header-enabled body.skin-vector-search-vue.vector-sticky-header-visible header.vector-sticky-header').each(function(i,el){ var rect_sticky=el.getBoundingClientRect(); height_sticky=parseInt(rect_sticky[height]); }); var StickyXYTopOld=$(element_g).data('sctickyXYOld-top');var StickyXYBottomOld=$(element_g).data('sctickyXYOld-bottom'); if(StickyXYTopOld===undefined){ var topold_war=parseFloat(element_g.style[top]); $(element_g).data('sctickyXYOld-top',((!isNaN(topold_war))?topold_war:0)); } if(StickyXYBottomOld===undefined){ var bottomold_war=parseFloat(element_g.style[bottom]); $(element_g).data('sctickyXYOld-bottom',((!isNaN(bottomold_war))?bottomold_war:0)); } var topold=$(element_g).data('sctickyXYOld-top')+height_sticky+5; var margintop=parseFloat(comp.getPropertyValue("margin-"+top)); margintop=((!isNaN(margintop))?margintop:0); var marginbottom=parseFloat(comp.getPropertyValue("margin-"+bottom)); marginbottom=((!isNaN(marginbottom))?marginbottom:0); var przodek_height=undefined; element_g.style[height]="auto"; element_g.style["max"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[top]="auto"; element_g.style[bottom]="auto"; if(width_box!=null){ element_g.style[width_box]="auto"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[left_box]="auto"; element_g.style[right_box]="0"; $(element_g).find('.mw-not-overflow-'+x_box+'.mw-overflow-'+x_box).each(function(i,element){ element.style[width_box]="auto"; }); } var parents_node_fun=$(element_g).parents('.mw-parent-node').first(); if((parents_node_fun==null)||(parents_node_fun.length==0)){return;} var width_rodzic=null; var rodzic_element=undefined; var comp_rodz; parents_node_fun.each(function(i,element){ comp_rodz=window.getComputedStyle(element,null); przodek_height=parseFloat(comp_rodz.getPropertyValue([height])); width_rodzic=width_box?parseFloat(comp_rodz.getPropertyValue([width_box])):null; rodzic_element=element; }); var height_box_real=parseFloat(comp.getPropertyValue(height)); var rect_dziecko=element_g.getBoundingClientRect(); var wys=document.documentElement["client"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]; var rect_rodzic; parents_node_fun.each(function(i,element){ rect_rodzic=element.getBoundingClientRect(); }); var top_ab=rect_rodzic[top]; var bottom_ab=(wys-rect_rodzic[bottom]); element_g.style["max"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=((Math.min(przodek_height,wys-((rect_rodzic[top]>=0)?(rect_rodzic[top]):(0))-((bottom_ab>=0)?(bottom_ab):(0)))-(((top_ab<=0)?(topold):(Math.max(0,topold-top_ab)))+((bottom_ab<=0)?($(element_g).data('sctickyXYOld-bottom')+5):(Math.max(0,$(element_g).data('sctickyXYOld-bottom')+5-bottom_ab)))+marginbottom+margintop))*(height_box_real/rect_dziecko[height]))+"px"; element_g.style[height]=(element_g["offset"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))])+"px"; var top_obj=(((top_ab>=0)?0:(-top_ab)))+((top_ab<=0)?(topold):(Math.max(0,topold-top_ab))); element_g.style[top]=top_obj+"px"; element_g.style[bottom]="auto"; if(width_box!=null){ element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; rodzic_element.style.position="static"; rodzic_element.style.overflow="hidden"; var width_box_real=parseFloat(comp.getPropertyValue(width_box)); var rect_dziecko=element_g.getBoundingClientRect(); if(parseInt(width_box_real)>parseInt(rect_dziecko[width_box])){ if(width_box=="width"){ element_g.classList.remove('mw-scrollbar-overflow-x'); }else{ element_g.classList.remove('mw-scrollbar-overflow-y'); } if(rect_dziecko[width_box]>width_rodzic){ if(width_box=="width"){ element_g.classList.add('mw-scrollbar-overflow-x'); }else{ element_g.classList.add('mw-scrollbar-overflow-y'); } } var width_box_real=parseFloat(comp.getPropertyValue(width_box)); var margin_all=parseFloat(comp.getPropertyValue("margin-"+left_box))+parseFloat(comp.getPropertyValue("margin-"+right_box)); margin_all+=parseFloat(comp_rodz.getPropertyValue("padding-"+left_box))+parseFloat(comp_rodz.getPropertyValue("padding-"+right_box)); var dlugosc=(width_rodzic-margin_all); dlugosc=((dlugosc>=0)?dlugosc:0); element_g.style.whiteSpace="nowrap"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width_box]))+"px"; element_g.style[width_box]=width_box_real+"px"; Common.ScrollBarOverflow(); $(element_g).find('.mw-overflow-'+x_box+'.mw-not-overflow-'+x_box+'.mw-scrollbar-overflow-'+x_box).each(function(i,element){ var comp_element=window.getComputedStyle(element, null) element.style[width_box]=(element["scroll"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]+Common.PobierzSzerokoscPaskaPrzewijania(x_box_right)+parseFloat(comp_element.getPropertyValue('padding-'+left_box))+parseFloat(comp_element.getPropertyValue('padding-'+right_box)))+"px"; element.classList.remove('mw-scrollbar-overflow-'+x_box_right); }); element_g.style.whiteSpace="normal"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[width_box]="auto"; var rect_dziecko=element_g.getBoundingClientRect(); var width_box_real=parseFloat(comp.getPropertyValue(width_box)); element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width_box]))+"px"; element_g.style[width_box]=width_box_real+"px"; element_g.style[left_box]="0"; element_g.style[right_box]="auto"; rodzic_element.style.position="relative"; }else{ element_g.style.whiteSpace="nowrap"; var szerokosc_box=rect_dziecko[width_box]; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(szerokosc_box)+"px"; element_g.style[width_box]=(szerokosc_box)+"px"; Common.ScrollBarOverflow(); $(element_g).find('.mw-overflow-'+x_box+'.mw-not-overflow-'+x_box+'.mw-scrollbar-overflow-'+x_box).each(function(i,element){ var comp_element=window.getComputedStyle(element, null); element.style[width_box]=(element["scroll"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]+Common.PobierzSzerokoscPaskaPrzewijania(x_box_right)+parseFloat(comp_element.getPropertyValue('padding-'+left_box))+parseFloat(comp_element.getPropertyValue('padding-'+right_box)))+"px"; element.classList.remove('mw-scrollbar-overflow-'+x_box_right); }); element_g.style.whiteSpace="normal"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[width_box]="auto"; var rect_dziecko=element_g.getBoundingClientRect(); var szerokosc_box=rect_dziecko[width_box]; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(szerokosc_box)+"px"; element_g.style[width_box]=(szerokosc_box)+"px"; var szerokosc=rect_dziecko[width_box]+parseFloat(comp.getPropertyValue("margin-"+left_box))+parseFloat(comp.getPropertyValue("margin-"+right_box)); if(parseInt(szerokosc)>parseInt(width_rodzic)){ element_g.style[right_box]="0"; element_g.style[left_box]="auto"; rodzic_element.style.overflow="visible"; }else{ element_g.style[left_box]="0"; element_g.style[right_box]="auto"; rodzic_element.style.position="relative"; } } } element_g.style[height]="auto"; element_g.style[height]=(element_g["offset"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))])+"px"; Common.ScrollBarOverflow(); for(var i in pozycje_paskow){ pozycje_paskow[i][0].scrollTop=pozycje_paskow[i][1]; pozycje_paskow[i][0].scrollLeft=pozycje_paskow[i][2]; } } element_g.classList.add('mw-sticky-js'); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var visibility=comp.getPropertyValue("visibility"); if(visibility=="hidden"){return;} var position=comp.getPropertyValue("position"); if(position!="absolute"){return;} var sticky_x=$(element_g).hasClass('mw-sticky-x'); var sticky_y=$(element_g).hasClass('mw-sticky-y'); if((sticky_x)&&(!sticky_y)){ var str=$(element_g).parents('.strona_górna, .strona_dolna').first(); if(str.hasClass('strona_górna')){ FunStickyXY("width","left","right","height","top","bottom","y","x"); }else if(str.hasClass('strona_dolna')){ FunStickyXY("width","left","right","height","bottom","top","x","y"); } }else if((!sticky_x)&&(sticky_y)){ var str=$(element_g).parents('.strona_prawa, .strona_lewa').first(); if(str.hasClass('strona_prawa')){ FunStickyXY("height","top","bottom","width","left","right","x","y"); }else if(str.hasClass('strona_lewa')){ FunStickyXY("height","top","bottom","width","right","left","x","y"); } }else{ FunStickyXY("width","left","right",null); FunStickyXY("height","top","bottom",null); } }); } $(function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); $(window).on('scroll', function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); $(window).on('resize', function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); /*Funkcja do ustawiania maksymalnego rozmiaru dziecka, względem rodzica, przy position:absolute*/ Common.OptimalXY=function(){ $('*.mw-optimal-x, *.mw-optimal-y').each(function(i,element_g){ var comp=window.getComputedStyle(element_g, null); function FunOptimalXY(width,left,right){ var pozycje_paskow=new Array(); $(element_g).find('*').each(function(i,element){ var comp=window.getComputedStyle(element, null); var overflow=comp.getPropertyValue("overflow"); var overflow_x=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); var overflow_y=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflow_x=="auto")||(overflow_x=="scroll")||(overflow_y=="auto")||(overflow_y=="scroll")){ pozycje_paskow.push(new Array(element,element.scrollTop,element.scrollLeft)); } }); var width_rodzic=null; var rodzic_node; var comp_rodz; $(element_g).parents('.mw-parent-node').first().each(function(i,element){ comp_rodz=window.getComputedStyle(element,null); width_rodzic=parseFloat(comp_rodz.getPropertyValue([width])); rodzic_node=element; }); if((width_rodzic!=null)&&(!isNaN(width_rodzic))){ element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; var width_box_real=parseFloat(comp.getPropertyValue(width)); var rect_dziecko=element_g.getBoundingClientRect(); if(width=="width"){ element_g.classList.remove('mw-scrollbar-overflow-x'); }else{ element_g.classList.remove('mw-scrollbar-overflow-y'); } if(parseInt(width_box_real)>parseInt(rect_dziecko[width])){ var rect_dziecko=element_g.getBoundingClientRect(); if(rect_dziecko[width]>width_rodzic){ if(width=="width"){ element_g.classList.add('mw-scrollbar-overflow-x'); }else{ element_g.classList.add('mw-scrollbar-overflow-y'); } } var width_box_real=parseFloat(comp.getPropertyValue(width)); var margin_all=parseFloat(comp.getPropertyValue("margin-"+left))+parseFloat(comp.getPropertyValue("margin-"+right)); margin_all+=parseFloat(comp_rodz.getPropertyValue("padding-"+left))+parseFloat(comp_rodz.getPropertyValue("padding-"+right)); var dlugosc=(width_rodzic-margin_all); dlugosc=((dlugosc>=0)?dlugosc:0); element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width]))+"px"; }else{ element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(rect_dziecko[width])+"px"; } var str=$(element_g).parents('.strona_prawa, .strona_lewa, .strona_górna, .strona_dolna').first(); if(!str.hasClass('strona_start-nawigacja_boksy')){ var rect_dziecko=element_g.getBoundingClientRect(); var szerokosc=rect_dziecko[width]+parseFloat(comp.getPropertyValue("margin-"+left))+parseFloat(comp.getPropertyValue("margin-"+right)); if(parseInt(szerokosc)>parseInt(width_rodzic)){ str.css('position','static'); }else{ str.css('position','relative'); } } } for(var i in pozycje_paskow){ pozycje_paskow[i][0].scrollTop=pozycje_paskow[i][1]; pozycje_paskow[i][0].scrollLeft=pozycje_paskow[i][2]; } }; element_g.classList.add('mw-optimal-js'); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var visibility=comp.getPropertyValue("visibility"); if(visibility=="hidden"){return;} var position=comp.getPropertyValue("position"); if(position!="absolute"){return;} var optimal_x=$(element_g).hasClass('mw-optimal-x'); var optimal_y=$(element_g).hasClass('mw-optimal-y'); if(optimal_x){ FunOptimalXY("width","left","right"); } if(optimal_y){ FunOptimalXY("height","top","bottom"); } }); } $(function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); $(window).on("scroll",function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); $(window).on("resize",function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); /*Uruchamianie dodatkowych funkcji, niż standardowe, w href w linkach rozwijanej tabeli TABLE lub ramki DIV, jeśli ona generuje zwiększenie rozmiarów, aby w rodzicu pojawił się pasek przewijania, z dodatkowymi opcjami generowanej przez arkusz kalkulacyjny CSS*/ Common.RamkiTableIDiv=function(obiekt,id_tabeli_lub_ramki,id_nazwa_a,fun_obiektu){ $(obiekt).each(function(i,element_f){ return new Promise(function(resolve,reject){ var czas=0; function Czekaj(){ if(czas>30000){ reject(); } var collapsebutton=$(element_f).find('a#'+id_nazwa_a+i); if((collapsebutton!==null)&&(collapsebutton.length>0)){ var tabele_lub_ramki=collapsebutton.parents('#'+id_tabeli_lub_ramki+i); if((tabele_lub_ramki===null)||(tabele_lub_ramki.length==0)){reject();} resolve(i); }else{ czas+=100; setTimeout(Czekaj,100); } } Czekaj(); }).then(function(i){ $('*.mw-overflow-x a#'+id_nazwa_a+i+', *.mw-overflow-y a#'+id_nazwa_a+i).each(function(j,element_g){ var href=element_g.getAttribute('href'); if((href!=null)&&(href!="")){ var col="[\\s;\\(\\,]*javascript:"+fun_obiektu.replace(/\./g,"\\.")+"\\s*\\(\\s*"+i+"\\s*\\)[\\s;\\)\\,]*"; var re_frame = new RegExp(col,'g'); var re_javascript=new RegExp("^[\\s;]*javascript:"); if((re_javascript.test(href))&&(re_frame.test(href))){ element_g.setAttribute('href',href.replace(/[;\s]*$/g,"")+';javascript:Common.ScrollBarOverflow();javascript:Common.StickyXY();javascript:Common.OptimalXY()') } } }); }).catch(function(){}); }); }; /*Dla menu rozwijanego tabeli TABLE zdefiniowanej na stronie MediaWiki:Common.js*/ Common.RamkiTableIDiv("table.collapsible",'collapsibleTable','collapseButton','Common.collapseTable'); /*Dla menu rozwijanej ramki DIV zdefiniowanej na stronie MediaWiki:Common.js*/ Common.RamkiTableIDiv("div.NavFrame",'NavFrame','NavToggle','Common.toggleNavigationBar'); /*Koniec dodatkowych funkcji*/ /*Uruchamianie dodatkowych zdarzeń do Common.StickyXY i OptimalXY*/ Common.ZdarzeniaDodatkoweFunkcyjneXY=function(css,fun_zdarz){ var fun_css=$(css); fun_css.on('mouseenter',fun_zdarz); fun_css.on('mouseleave',fun_zdarz); fun_css.on('transitionstart',fun_zdarz); fun_css.on('webkittransitionstart',fun_zdarz); fun_css.on('moztransitionstart',fun_zdarz); fun_css.on('otransitionstart',fun_zdarz); fun_css.on('transitionrun',fun_zdarz); fun_css.on('webkittransitionrun',fun_zdarz); fun_css.on('moztransitionrun',fun_zdarz); fun_css.on('otransitionrun',fun_zdarz); fun_css.on('transitioncancel',fun_zdarz); fun_css.on('webkittransitioncancel',fun_zdarz); fun_css.on('moztransitioncancel',fun_zdarz); fun_css.on('otransitioncancel',fun_zdarz); fun_css.on('transitionend',fun_zdarz); fun_css.on('webkittransitionend',fun_zdarz); fun_css.on('moztransitionend',fun_zdarz); fun_css.on('otransitionend',fun_zdarz); }; Common.ZdarzeniaDodatkoweFunkcyjneXY("*.mw-sticky-x, *.mw-sticky-y",Common.StickyXY); Common.ZdarzeniaDodatkoweFunkcyjneXY('*.mw-optimal-x, *.mw-optimal-y',Common.OptimalXY); /*Koniec dodatkowych zdarzeń*/ /*Program do obsługi szablonu StronaStart i jego pokrewnych książkowych*/ Common.StronaStart=function(){ var elements=$('.strona_start .strona .ciało_zawartości > .menu > .menu_boks'); elements.parent().show(); $('.strona_start').find('.strona_lewa .nawigacja_boksy, .strona_prawa .nawigacja_boksy').each(function(i,element){ $(element).css('visibility',"hidden"); }); $('.strona_start').find('.strona_lewa .nawigacja_spis, .strona_prawa .nawigacja_spis').each(function(i,element){ var czy_visible=$(element).css('visibility'); $(element).css('visibility',"visible"); var str=$(element).parents('.strona_prawa, .strona_lewa').first(); str.css('position','relative'); str.addClass('strona_start-nawigacja_spis'); str.removeClass('strona_start-nawigacja_boksy'); if(czy_visible=="hidden"){ $(Common.ScrollBarOverflow); $(Common.StickyXY); } }); function StronaStartFun(){ var id=this; $(id).parents('.strona_start').first().find('.strona .ciało_zawartości > .menu > .menu_boks').children().each(function(i,element){ var display=$(element).css('display'); if(display=="none"){ $(element).css('display',"block"); }else{ $(element).css('display',"none"); } }); $(id).parents('.strona_start').first().find('.strona_lewa, .strona_prawa').children().each(function(i,element){ var visibility=window.getComputedStyle(element, null).getPropertyValue('visibility'); if(visibility=="hidden"){ $(element).css('visibility',"visible"); var str=$(element).parents('.strona_prawa, .strona_lewa').first(); if($(element).hasClass('nawigacja_boksy')){ str.css('position','static'); str.addClass('strona_start-nawigacja_boksy'); str.removeClass('strona_start-nawigacja_spis'); $(Common.ScrollBarOverflow); $(Common.OptimalXY); }else if($(element).hasClass('nawigacja_spis')){ str.css('position','relative'); str.addClass('strona_start-nawigacja_spis'); str.removeClass('strona_start-nawigacja_boksy'); $(Common.ScrollBarOverflow); $(Common.StickyXY); } }else{ $(element).css('visibility',"hidden"); } }); } elements.on('click',StronaStartFun); } $(Common.StronaStart); pyje0cqvhqhp0u6pbyttfope6xge804 437154 437153 2022-08-07T17:00:12Z Persino 2851 javascript text/javascript mw.loader.load( '//pl.wikibooks.org/w/index.php?action=raw&ctype=text/javascript&title=Wikipedysta:Persino/Gadget-StronicowyParser.js', 'text/javascript', true ); /**/ /* Umieszczony tutaj kod JavaScript zostanie załadowany przez każdego użytkownika, podczas każdego ładowania strony. */ // Frame Busting if (top != self) top.location.href = self.location.href; /* * Zmienna Common.pageInfo, jego elementy, instrukcja obsługi: * Common.pageInfo.namespace numer przestrzeni nazw (równe wgNamespaceNumber) * Common.pageInfo.name pełna nazwa strony * Common.pageInfo.title tytuł strony, czyli ostatnia część po '/' albo jest równe pageInfo.name, gdy nigdzie nie występuje slash * Common.pageInfo.book tytuł książki * Common.pageInfo.action akcja taka jaka jest w adresie URL pod "action=", w przypadku normalnego czytania strony, action jest równe "get" * Common.pageInfo.diff null w przypadku, gdy nie porównujemy wersji, w przeciwnym wypadku wartość występującą w adresie URL */ /*Przestrzeń nazw: Common, zdefiniowanym za pomocą tablicy*/ var Common=new Array(); /*Funkcje w przestrzeni nazw Common*/ Common.Naglowek=function(){ /* Skrypt odpowiedzialny za wyświetlanie szablonu Nagłówek [[Szablon:Nagłówek]] */ var hideAll = document.getElementById('mójNagłówekUkryj'); var noFooter = false; var footers = 0; var tags = document.getElementsByTagName('div'); for (var i = 0; i < tags.length; i++) { var el=tags[i].getAttribute("id"); if (el=='mojaStopka') footers++; else if (hideAll && (el=='mójNagłówek')) { tags[i].innerHTML=""; noFooter=true; } } if (noFooter) return; var footer = document.getElementById('mojaStopka'); if ((footer !== null) && (footers==1)) { var bodyContent = document.getElementById('bodyContent'); if (bodyContent !== null) { var s0=document.getElementById('mojaStopka0'); var s1=document.getElementById('mojaStopka1'); if ((s1 !== null) || ((s0 === null) && (bodyContent.innerHTML.length>8000))){ var strona=document.getElementById('strona'); if(strona!==null){ strona.appendChild(footer); }else{ var catlinks=document.getElementById('catlinks'); if(catlinks !== null){ bodyContent.insertBefore(footer,catlinks); }else{ bodyContent.appendChild(footer); } } } } } /* Koniec skryptu odpowiedzialnego za wyświetlanie szablonu Nagłówek [[Szablon:Nagłówek]] */ }; $(Common.Naglowek); /*Informacje o danej stronie*/ Common.PageInfoInit=function(){ var _g = /_/g; this.name = mw.config.get('wgPageName').replace(/_/g, ' '); this.namespace = mw.config.get('wgNamespaceNumber'); var i = this.name.search(/\/[^\/]*$/g); this.title = this.name.slice(i + 1); this.book = this.name.replace(/\/.*/g, ""); if ( document.URL.search("//pl.wikibooks.org/w/index.php") != -1 ) { re = /\&diff=/g; this.diff = re.test(document.URL); re = /\&action=[^\&]*/g; this.action = document.URL.match(re); if ( this.action === null ) { this.action = 'get'; } else { this.action = this.action[0].slice(8, this.action[0].length); } } else { this.diff = null; this.action = 'get'; } } Common.pageInfo = new Common.PageInfoInit(); /** Collapsible tables ********************************************************* * * Description: Allows tables to be collapsed, showing only the header. See * [[en:Wikipedia:NavFrame]]. * Maintainers: [[User:R. Koot]] */ Common.autoCollapse = 2; Common.collapseCaption = "ukryj"; Common.expandCaption = "pokaż"; Common.collapseTable=function( tableIndex ) { var Button = document.getElementById( "collapseButton" + tableIndex ); var Table = document.getElementById( "collapsibleTable" + tableIndex ); if ( !Table || !Button ) { return false; } var Rows = Table.rows; if ( Button.firstChild.data == Common.collapseCaption ) { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = "none"; } Button.firstChild.data = Common.expandCaption; } else { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = Rows[0].style.display; } Button.firstChild.data = Common.collapseCaption; } } Common.createCollapseButtons=function() { var tableIndex = 0; var NavigationBoxes = new Object(); var Tables = document.getElementsByTagName( "table" ); for ( var i = 0; i < Tables.length; i++ ) { if ( $(Tables[i]).hasClass( "collapsible" ) ) { /* only add button and increment count if there is a header row to work with */ var HeaderRow = Tables[i].getElementsByTagName( "tr" )[0]; if (!HeaderRow) continue; var Header = HeaderRow.getElementsByTagName( "th" )[0]; if (!Header) continue; NavigationBoxes[ tableIndex ] = Tables[i]; Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex ); var Button = document.createElement( "span" ); var ButtonLink = document.createElement( "a" ); var ButtonText = document.createTextNode( Common.collapseCaption ); Button.style.styleFloat = "right"; Button.style.cssFloat = "right"; Button.style.fontWeight = "normal"; Button.style.textAlign = "right"; Button.style.width = "6em"; ButtonLink.style.color = Header.style.color; ButtonLink.setAttribute( "id", "collapseButton" + tableIndex ); ButtonLink.setAttribute( "href", "javascript:Common.collapseTable(" + tableIndex + ");" ); ButtonLink.appendChild( ButtonText ); Button.appendChild( document.createTextNode( "[" ) ); Button.appendChild( ButtonLink ); Button.appendChild( document.createTextNode( "]" ) ); $(Header.childNodes[0]).has('a#collapseButton' + tableIndex).each(function(i,element){ $(element).remove(); }); Header.insertBefore( Button, Header.childNodes[0]); tableIndex++; } } for ( var i = 0; i < tableIndex; i++ ) { if ( $(NavigationBoxes[i]).hasClass( "collapsed" ) || ( tableIndex >= Common.autoCollapse && $(NavigationBoxes[i]).hasClass( "Common.autoCollapse" ) ) ) { collapseTable( i ); } else if ( $(NavigationBoxes[i]).hasClass( "innercollapse" ) ) { var element = NavigationBoxes[i]; while (element = element.parentNode) { if ( $(element).hasClass( "outercollapse" ) ) { collapseTable ( i ); break; } } } } } $(Common.createCollapseButtons ); /** Dynamic Navigation Bars (experimental) ************************************* * * Description: See [[Wikipedia:NavFrame]]. * Maintainers: UNMAINTAINED */ // set up the words in your language Common.NavigationBarHide = '[' + Common.collapseCaption + ']'; Common.NavigationBarShow = '[' + Common.expandCaption + ']'; // shows and hides content and picture (if available) of navigation bars // Parameters: // indexNavigationBar: the index of navigation bar to be toggled Common.toggleNavigationBar=function(indexNavigationBar) { var NavToggle = document.getElementById("NavToggle" + indexNavigationBar); var NavFrame = document.getElementById("NavFrame" + indexNavigationBar); if (!NavFrame || !NavToggle) { return false; } // if shown now if (NavToggle.firstChild.data == Common.NavigationBarHide) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) ) { NavChild.style.display = 'none'; } if ( $(NavChild).hasClass( 'NavContent') ) { NavChild.style.display = 'none'; } } NavToggle.firstChild.data = Common.NavigationBarShow; // if hidden now } else if (NavToggle.firstChild.data == Common.NavigationBarShow) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ($(NavChild).hasClass( 'NavPic')) { NavChild.style.display = 'block'; } if ($(NavChild).hasClass( 'NavContent')) { NavChild.style.display = 'block'; } } NavToggle.firstChild.data = Common.NavigationBarHide; } } // adds show/hide-button to navigation bars Common.createNavigationBarToggleButton=function() { var indexNavigationBar = 0; // iterate over all < div >-elements var divs = document.getElementsByTagName("div"); for (var i = 0; NavFrame = divs[i]; i++) { // if found a navigation bar if ($(NavFrame).hasClass( "NavFrame")) { indexNavigationBar++; var NavToggle = document.createElement("a"); NavToggle.className = 'NavToggle'; NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar); NavToggle.setAttribute('href', 'javascript:Common.toggleNavigationBar(' + indexNavigationBar + ');'); var isCollapsed = $(NavFrame).hasClass( "collapsed" ); /* * Check if any children are already hidden. This loop is here for backwards compatibility: * the old way of making NavFrames start out collapsed was to manually add style="display:none" * to all the NavPic/NavContent elements. Since this was bad for accessibility (no way to make * the content visible without JavaScript support), the new recommended way is to add the class * "collapsed" to the NavFrame itself, just like with collapsible tables. */ for (var NavChild = NavFrame.firstChild; NavChild != null && !isCollapsed; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) || $(NavChild).hasClass( 'NavContent' ) ) { if ( NavChild.style.display == 'none' ) { isCollapsed = true; } } } if (isCollapsed) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) || $(NavChild).hasClass( 'NavContent' ) ) { NavChild.style.display = 'none'; } } } var NavToggleText = document.createTextNode(isCollapsed ? Common.NavigationBarShow : Common.NavigationBarHide); NavToggle.appendChild(NavToggleText); // Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked) for(var j=0; j < NavFrame.childNodes.length; j++) { if ($(NavFrame.childNodes[j]).hasClass( "NavHead")) { $(NavFrame.childNodes[j]).children('a.NavToggle#NavToggle' + indexNavigationBar).each(function(i,element){ $(element).remove(); }); NavFrame.childNodes[j].appendChild(NavToggle); } } NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar); } } } $(Common.createNavigationBarToggleButton ); // Wyszukiwanie Google na stronach podręczników Common.googleSearchInitialized = false; Common.insertGoogleSearch=function() { if ( mw.config.get('wgNamespaceNumber') != 0 || Common.googleSearchInitialized ) { return; } Common.googleSearchInitialized = true; var google = "http://www.google.com/custom?sa=Google+Search&domains=pl.wikibooks.org/wiki/PAGE&sitesearch=pl.wikibooks.org/wiki/PAGE"; var ul = jQuery('#p-tb ul')[0]; if (!ul) { return; } var link = document.createElement('a'); var book = Common.pageInfo.book; if ( book.length == 1 || book.indexOf('++') != -1 || encodeURIComponent(book) != book ) { google = "http://www.google.com/custom?sa=Google+Search&domains=pl.wikibooks.org/wiki/&sitesearch=pl.wikibooks.org/wiki/&q=%22PAGE%22" } link.href = google.replace(/PAGE/g, encodeURIComponent(book)); link.appendChild(document.createTextNode("Szukaj w podręczniku")); var li = document.createElement('li'); li.id = "google-trick-search"; li.appendChild(link); $(ul).children('li#google-trick-search').each(function(i,element){ $(element).remove(); }); ul.insertBefore(li, ul.firstChild); } $(Common.insertGoogleSearch); /*Funkcja do liczenia, czy nastąpiło przepełnienie poziome lub pionowe*/ Common.PobierzSzerokoscPaskaPrzewijania=function(x_box_right){ var div = $('<div style="width:50px;height:50px;overflow:hidden;position:absolute;top:-200px;left:-200px;"><div style="height:100px;"></div></div>'); $('body').append(div); var w1 = $('div', div)["inner"+((x_box_right=="y")?"Width":"Height")](); div.css('overflow-'+(x_box_right||"y"), 'scroll'); var w2 = $('div', div)["inner"+((x_box_right=="y")?"Width":"Height")](); $(div).remove(); return (w1 - w2); } /*Funkcje do obsługi pasków przewijania*/ Common.ScrollBarOverflow=function(){ $('*.mw-overflow-x, *.mw-overflow-y').each(function(i,element_g){ /*start overflow*/ var comp=window.getComputedStyle(element_g, null); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var overflow=comp.getPropertyValue("overflow"); var overflow_x=$(element_g).hasClass('mw-overflow-x'); if(overflow_x){ var overflowX=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); if((overflowX)&&(overflowX=="auto")){ element_g.classList.remove("mw-scrollbar-overflow-x"); const hasHorizontalScrollbar = element_g.scrollWidth > element_g.clientWidth; // true lub false if(hasHorizontalScrollbar){ element_g.classList.add("mw-scrollbar-overflow-x"); } } } var overflow_y=$(element_g).hasClass('mw-overflow-y'); if(overflow_y){ var overflowY=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflowY)&&(overflowY=="auto")){ element_g.classList.remove("mw-scrollbar-overflow-y"); const hasVerticalScrollbar = element_g.scrollHeight > element_g.clientHeight; // true lub false if(hasVerticalScrollbar){ element_g.classList.add("mw-scrollbar-overflow-y"); } } } /*koniec overflow*/ }); } $(function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); $(window).on('scroll', function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); $(window).on('resize', function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); /*Funkcja symulująca właściwości position:sticky, wszędzie tam, gdzie nie można go użyć.*/ Common.StickyXY=function(){ $('*.mw-sticky-x, *.mw-sticky-y').each(function(i,element_g){ var comp=window.getComputedStyle(element_g, null); function FunStickyXY(height,top,bottom,width_box,left_box,right_box,x_box,x_box_right){ var pozycje_paskow=new Array(); $(element_g).find('*').each(function(i,element){ var comp=window.getComputedStyle(element, null); var overflow=comp.getPropertyValue("overflow"); var overflow_x=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); var overflow_y=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflow_x=="auto")||(overflow_x=="scroll")||(overflow_y=="auto")||(overflow_y=="scroll")){ pozycje_paskow.push(new Array(element,element.scrollTop,element.scrollLeft)); } }); var height_sticky=0; $('html.client-js.vector-sticky-header-enabled body.skin-vector-search-vue.vector-sticky-header-visible header.vector-sticky-header').each(function(i,el){ var rect_sticky=el.getBoundingClientRect(); height_sticky=parseInt(rect_sticky[height]); }); var StickyXYTopOld=$(element_g).data('stickyXYOld-'+top);var StickyXYBottomOld=$(element_g).data('stickyXYOld-'+bottom); if(StickyXYTopOld===undefined){ var topold_war=parseFloat(element_g.style[top]); $(element_g).data('stickyXYOld-'+top,((!isNaN(topold_war))?topold_war:0)); } if(StickyXYBottomOld===undefined){ var bottomold_war=parseFloat(element_g.style[bottom]); $(element_g).data('stickyXYOld-'+bottom,((!isNaN(bottomold_war))?bottomold_war:0)); } var topold=$(element_g).data('stickyXYOld-'+top)+height_sticky+5; var margintop=parseFloat(comp.getPropertyValue("margin-"+top)); margintop=((!isNaN(margintop))?margintop:0); var marginbottom=parseFloat(comp.getPropertyValue("margin-"+bottom)); marginbottom=((!isNaN(marginbottom))?marginbottom:0); var przodek_height=undefined; element_g.style[height]="auto"; element_g.style["max"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[top]="auto"; element_g.style[bottom]="auto"; if(width_box!=null){ element_g.style[width_box]="auto"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[left_box]="auto"; element_g.style[right_box]="0"; $(element_g).find('.mw-not-overflow-'+x_box+'.mw-overflow-'+x_box).each(function(i,element){ element.style[width_box]="auto"; }); } var parents_node_fun=$(element_g).parents('.mw-parent-node').first(); if((parents_node_fun==null)||(parents_node_fun.length==0)){return;} var width_rodzic=null; var rodzic_element=undefined; var comp_rodz; parents_node_fun.each(function(i,element){ comp_rodz=window.getComputedStyle(element,null); przodek_height=parseFloat(comp_rodz.getPropertyValue([height])); width_rodzic=width_box?parseFloat(comp_rodz.getPropertyValue([width_box])):null; rodzic_element=element; }); var height_box_real=parseFloat(comp.getPropertyValue(height)); var rect_dziecko=element_g.getBoundingClientRect(); var wys=document.documentElement["client"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]; var rect_rodzic; parents_node_fun.each(function(i,element){ rect_rodzic=element.getBoundingClientRect(); }); var top_ab=rect_rodzic[top]; var bottom_ab=(wys-rect_rodzic[bottom]); element_g.style["max"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=((Math.min(przodek_height,wys-((rect_rodzic[top]>=0)?(rect_rodzic[top]):(0))-((bottom_ab>=0)?(bottom_ab):(0)))-(((top_ab<=0)?(topold):(Math.max(0,topold-top_ab)))+((bottom_ab<=0)?($(element_g).data('stickyXYOld-'+bottom)+5):(Math.max(0,$(element_g).data('stickyXYOld-'+bottom)+5-bottom_ab)))+marginbottom+margintop))*(height_box_real/rect_dziecko[height]))+"px"; element_g.style[height]=(element_g["offset"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))])+"px"; var top_obj=(((top_ab>=0)?0:(-top_ab)))+((top_ab<=0)?(topold):(Math.max(0,topold-top_ab))); element_g.style[top]=top_obj+"px"; element_g.style[bottom]="auto"; if(width_box!=null){ element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; rodzic_element.style.position="static"; rodzic_element.style.overflow="hidden"; var width_box_real=parseFloat(comp.getPropertyValue(width_box)); var rect_dziecko=element_g.getBoundingClientRect(); if(parseInt(width_box_real)>parseInt(rect_dziecko[width_box])){ if(width_box=="width"){ element_g.classList.remove('mw-scrollbar-overflow-x'); }else{ element_g.classList.remove('mw-scrollbar-overflow-y'); } if(rect_dziecko[width_box]>width_rodzic){ if(width_box=="width"){ element_g.classList.add('mw-scrollbar-overflow-x'); }else{ element_g.classList.add('mw-scrollbar-overflow-y'); } } var width_box_real=parseFloat(comp.getPropertyValue(width_box)); var margin_all=parseFloat(comp.getPropertyValue("margin-"+left_box))+parseFloat(comp.getPropertyValue("margin-"+right_box)); margin_all+=parseFloat(comp_rodz.getPropertyValue("padding-"+left_box))+parseFloat(comp_rodz.getPropertyValue("padding-"+right_box)); var dlugosc=(width_rodzic-margin_all); dlugosc=((dlugosc>=0)?dlugosc:0); element_g.style.whiteSpace="nowrap"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width_box]))+"px"; element_g.style[width_box]=width_box_real+"px"; Common.ScrollBarOverflow(); $(element_g).find('.mw-overflow-'+x_box+'.mw-not-overflow-'+x_box+'.mw-scrollbar-overflow-'+x_box).each(function(i,element){ var comp_element=window.getComputedStyle(element, null) element.style[width_box]=(element["scroll"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]+Common.PobierzSzerokoscPaskaPrzewijania(x_box_right)+parseFloat(comp_element.getPropertyValue('padding-'+left_box))+parseFloat(comp_element.getPropertyValue('padding-'+right_box)))+"px"; element.classList.remove('mw-scrollbar-overflow-'+x_box_right); }); element_g.style.whiteSpace="normal"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[width_box]="auto"; var rect_dziecko=element_g.getBoundingClientRect(); var width_box_real=parseFloat(comp.getPropertyValue(width_box)); element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width_box]))+"px"; element_g.style[width_box]=width_box_real+"px"; element_g.style[left_box]="0"; element_g.style[right_box]="auto"; rodzic_element.style.position="relative"; }else{ element_g.style.whiteSpace="nowrap"; var szerokosc_box=rect_dziecko[width_box]; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(szerokosc_box)+"px"; element_g.style[width_box]=(szerokosc_box)+"px"; Common.ScrollBarOverflow(); $(element_g).find('.mw-overflow-'+x_box+'.mw-not-overflow-'+x_box+'.mw-scrollbar-overflow-'+x_box).each(function(i,element){ var comp_element=window.getComputedStyle(element, null); element.style[width_box]=(element["scroll"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]+Common.PobierzSzerokoscPaskaPrzewijania(x_box_right)+parseFloat(comp_element.getPropertyValue('padding-'+left_box))+parseFloat(comp_element.getPropertyValue('padding-'+right_box)))+"px"; element.classList.remove('mw-scrollbar-overflow-'+x_box_right); }); element_g.style.whiteSpace="normal"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[width_box]="auto"; var rect_dziecko=element_g.getBoundingClientRect(); var szerokosc_box=rect_dziecko[width_box]; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(szerokosc_box)+"px"; element_g.style[width_box]=(szerokosc_box)+"px"; var szerokosc=rect_dziecko[width_box]+parseFloat(comp.getPropertyValue("margin-"+left_box))+parseFloat(comp.getPropertyValue("margin-"+right_box)); if(parseInt(szerokosc)>parseInt(width_rodzic)){ element_g.style[right_box]="0"; element_g.style[left_box]="auto"; rodzic_element.style.overflow="visible"; }else{ element_g.style[left_box]="0"; element_g.style[right_box]="auto"; rodzic_element.style.position="relative"; } } } element_g.style[height]="auto"; element_g.style[height]=(element_g["offset"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))])+"px"; Common.ScrollBarOverflow(); for(var i in pozycje_paskow){ pozycje_paskow[i][0].scrollTop=pozycje_paskow[i][1]; pozycje_paskow[i][0].scrollLeft=pozycje_paskow[i][2]; } } element_g.classList.add('mw-sticky-js'); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var visibility=comp.getPropertyValue("visibility"); if(visibility=="hidden"){return;} var position=comp.getPropertyValue("position"); if(position!="absolute"){return;} var sticky_x=$(element_g).hasClass('mw-sticky-x'); var sticky_y=$(element_g).hasClass('mw-sticky-y'); if((sticky_x)&&(!sticky_y)){ var str=$(element_g).parents('.strona_górna, .strona_dolna').first(); if(str.hasClass('strona_górna')){ FunStickyXY("width","left","right","height","top","bottom","y","x"); }else if(str.hasClass('strona_dolna')){ FunStickyXY("width","left","right","height","bottom","top","x","y"); } }else if((!sticky_x)&&(sticky_y)){ var str=$(element_g).parents('.strona_prawa, .strona_lewa').first(); if(str.hasClass('strona_prawa')){ FunStickyXY("height","top","bottom","width","left","right","x","y"); }else if(str.hasClass('strona_lewa')){ FunStickyXY("height","top","bottom","width","right","left","x","y"); } }else{ FunStickyXY("width","left","right",null); FunStickyXY("height","top","bottom",null); } }); } $(function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); $(window).on('scroll', function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); $(window).on('resize', function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); /*Funkcja do ustawiania maksymalnego rozmiaru dziecka, względem rodzica, przy position:absolute*/ Common.OptimalXY=function(){ $('*.mw-optimal-x, *.mw-optimal-y').each(function(i,element_g){ var comp=window.getComputedStyle(element_g, null); function FunOptimalXY(width,left,right){ var pozycje_paskow=new Array(); $(element_g).find('*').each(function(i,element){ var comp=window.getComputedStyle(element, null); var overflow=comp.getPropertyValue("overflow"); var overflow_x=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); var overflow_y=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflow_x=="auto")||(overflow_x=="scroll")||(overflow_y=="auto")||(overflow_y=="scroll")){ pozycje_paskow.push(new Array(element,element.scrollTop,element.scrollLeft)); } }); var width_rodzic=null; var rodzic_node; var comp_rodz; $(element_g).parents('.mw-parent-node').first().each(function(i,element){ comp_rodz=window.getComputedStyle(element,null); width_rodzic=parseFloat(comp_rodz.getPropertyValue([width])); rodzic_node=element; }); if((width_rodzic!=null)&&(!isNaN(width_rodzic))){ element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; var width_box_real=parseFloat(comp.getPropertyValue(width)); var rect_dziecko=element_g.getBoundingClientRect(); if(width=="width"){ element_g.classList.remove('mw-scrollbar-overflow-x'); }else{ element_g.classList.remove('mw-scrollbar-overflow-y'); } if(parseInt(width_box_real)>parseInt(rect_dziecko[width])){ var rect_dziecko=element_g.getBoundingClientRect(); if(rect_dziecko[width]>width_rodzic){ if(width=="width"){ element_g.classList.add('mw-scrollbar-overflow-x'); }else{ element_g.classList.add('mw-scrollbar-overflow-y'); } } var width_box_real=parseFloat(comp.getPropertyValue(width)); var margin_all=parseFloat(comp.getPropertyValue("margin-"+left))+parseFloat(comp.getPropertyValue("margin-"+right)); margin_all+=parseFloat(comp_rodz.getPropertyValue("padding-"+left))+parseFloat(comp_rodz.getPropertyValue("padding-"+right)); var dlugosc=(width_rodzic-margin_all); dlugosc=((dlugosc>=0)?dlugosc:0); element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width]))+"px"; }else{ element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(rect_dziecko[width])+"px"; } var str=$(element_g).parents('.strona_prawa, .strona_lewa, .strona_górna, .strona_dolna').first(); if(!str.hasClass('strona_start-nawigacja_boksy')){ var rect_dziecko=element_g.getBoundingClientRect(); var szerokosc=rect_dziecko[width]+parseFloat(comp.getPropertyValue("margin-"+left))+parseFloat(comp.getPropertyValue("margin-"+right)); if(parseInt(szerokosc)>parseInt(width_rodzic)){ str.css('position','static'); }else{ str.css('position','relative'); } } } for(var i in pozycje_paskow){ pozycje_paskow[i][0].scrollTop=pozycje_paskow[i][1]; pozycje_paskow[i][0].scrollLeft=pozycje_paskow[i][2]; } }; element_g.classList.add('mw-optimal-js'); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var visibility=comp.getPropertyValue("visibility"); if(visibility=="hidden"){return;} var position=comp.getPropertyValue("position"); if(position!="absolute"){return;} var optimal_x=$(element_g).hasClass('mw-optimal-x'); var optimal_y=$(element_g).hasClass('mw-optimal-y'); if(optimal_x){ FunOptimalXY("width","left","right"); } if(optimal_y){ FunOptimalXY("height","top","bottom"); } }); } $(function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); $(window).on("scroll",function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); $(window).on("resize",function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); /*Uruchamianie dodatkowych funkcji, niż standardowe, w href w linkach rozwijanej tabeli TABLE lub ramki DIV, jeśli ona generuje zwiększenie rozmiarów, aby w rodzicu pojawił się pasek przewijania, z dodatkowymi opcjami generowanej przez arkusz kalkulacyjny CSS*/ Common.RamkiTableIDiv=function(obiekt,id_tabeli_lub_ramki,id_nazwa_a,fun_obiektu){ $(obiekt).each(function(i,element_f){ return new Promise(function(resolve,reject){ var czas=0; function Czekaj(){ if(czas>30000){ reject(); } var collapsebutton=$(element_f).find('a#'+id_nazwa_a+i); if((collapsebutton!==null)&&(collapsebutton.length>0)){ var tabele_lub_ramki=collapsebutton.parents('#'+id_tabeli_lub_ramki+i); if((tabele_lub_ramki===null)||(tabele_lub_ramki.length==0)){reject();} resolve(i); }else{ czas+=100; setTimeout(Czekaj,100); } } Czekaj(); }).then(function(i){ $('*.mw-overflow-x a#'+id_nazwa_a+i+', *.mw-overflow-y a#'+id_nazwa_a+i).each(function(j,element_g){ var href=element_g.getAttribute('href'); if((href!=null)&&(href!="")){ var col="[\\s;\\(\\,]*javascript:"+fun_obiektu.replace(/\./g,"\\.")+"\\s*\\(\\s*"+i+"\\s*\\)[\\s;\\)\\,]*"; var re_frame = new RegExp(col,'g'); var re_javascript=new RegExp("^[\\s;]*javascript:"); if((re_javascript.test(href))&&(re_frame.test(href))){ element_g.setAttribute('href',href.replace(/[;\s]*$/g,"")+';javascript:Common.ScrollBarOverflow();javascript:Common.StickyXY();javascript:Common.OptimalXY()') } } }); }).catch(function(){}); }); }; /*Dla menu rozwijanego tabeli TABLE zdefiniowanej na stronie MediaWiki:Common.js*/ Common.RamkiTableIDiv("table.collapsible",'collapsibleTable','collapseButton','Common.collapseTable'); /*Dla menu rozwijanej ramki DIV zdefiniowanej na stronie MediaWiki:Common.js*/ Common.RamkiTableIDiv("div.NavFrame",'NavFrame','NavToggle','Common.toggleNavigationBar'); /*Koniec dodatkowych funkcji*/ /*Uruchamianie dodatkowych zdarzeń do Common.StickyXY i OptimalXY*/ Common.ZdarzeniaDodatkoweFunkcyjneXY=function(css,fun_zdarz){ var fun_css=$(css); fun_css.on('mouseenter',fun_zdarz); fun_css.on('mouseleave',fun_zdarz); fun_css.on('transitionstart',fun_zdarz); fun_css.on('webkittransitionstart',fun_zdarz); fun_css.on('moztransitionstart',fun_zdarz); fun_css.on('otransitionstart',fun_zdarz); fun_css.on('transitionrun',fun_zdarz); fun_css.on('webkittransitionrun',fun_zdarz); fun_css.on('moztransitionrun',fun_zdarz); fun_css.on('otransitionrun',fun_zdarz); fun_css.on('transitioncancel',fun_zdarz); fun_css.on('webkittransitioncancel',fun_zdarz); fun_css.on('moztransitioncancel',fun_zdarz); fun_css.on('otransitioncancel',fun_zdarz); fun_css.on('transitionend',fun_zdarz); fun_css.on('webkittransitionend',fun_zdarz); fun_css.on('moztransitionend',fun_zdarz); fun_css.on('otransitionend',fun_zdarz); }; Common.ZdarzeniaDodatkoweFunkcyjneXY("*.mw-sticky-x, *.mw-sticky-y",Common.StickyXY); Common.ZdarzeniaDodatkoweFunkcyjneXY('*.mw-optimal-x, *.mw-optimal-y',Common.OptimalXY); /*Koniec dodatkowych zdarzeń*/ /*Program do obsługi szablonu StronaStart i jego pokrewnych książkowych*/ Common.StronaStart=function(){ var elements=$('.strona_start .strona .ciało_zawartości > .menu > .menu_boks'); elements.parent().show(); $('.strona_start').find('.strona_lewa .nawigacja_boksy, .strona_prawa .nawigacja_boksy').each(function(i,element){ $(element).css('visibility',"hidden"); }); $('.strona_start').find('.strona_lewa .nawigacja_spis, .strona_prawa .nawigacja_spis').each(function(i,element){ var czy_visible=$(element).css('visibility'); $(element).css('visibility',"visible"); var str=$(element).parents('.strona_prawa, .strona_lewa').first(); str.css('position','relative'); str.addClass('strona_start-nawigacja_spis'); str.removeClass('strona_start-nawigacja_boksy'); if(czy_visible=="hidden"){ $(Common.ScrollBarOverflow); $(Common.StickyXY); } }); function StronaStartFun(){ var id=this; $(id).parents('.strona_start').first().find('.strona .ciało_zawartości > .menu > .menu_boks').children().each(function(i,element){ var display=$(element).css('display'); if(display=="none"){ $(element).css('display',"block"); }else{ $(element).css('display',"none"); } }); $(id).parents('.strona_start').first().find('.strona_lewa, .strona_prawa').children().each(function(i,element){ var visibility=window.getComputedStyle(element, null).getPropertyValue('visibility'); if(visibility=="hidden"){ $(element).css('visibility',"visible"); var str=$(element).parents('.strona_prawa, .strona_lewa').first(); if($(element).hasClass('nawigacja_boksy')){ str.css('position','static'); str.addClass('strona_start-nawigacja_boksy'); str.removeClass('strona_start-nawigacja_spis'); $(Common.ScrollBarOverflow); $(Common.OptimalXY); }else if($(element).hasClass('nawigacja_spis')){ str.css('position','relative'); str.addClass('strona_start-nawigacja_spis'); str.removeClass('strona_start-nawigacja_boksy'); $(Common.ScrollBarOverflow); $(Common.StickyXY); } }else{ $(element).css('visibility',"hidden"); } }); } elements.on('click',StronaStartFun); } $(Common.StronaStart); k792293c3ajrtblbp7b5t8tqxfnk0gz 437155 437154 2022-08-07T17:13:45Z Persino 2851 javascript text/javascript mw.loader.load( '//pl.wikibooks.org/w/index.php?action=raw&ctype=text/javascript&title=Wikipedysta:Persino/Gadget-StronicowyParser.js', 'text/javascript', true ); /**/ /* Umieszczony tutaj kod JavaScript zostanie załadowany przez każdego użytkownika, podczas każdego ładowania strony. */ // Frame Busting if (top != self) top.location.href = self.location.href; /* * Zmienna Common.pageInfo, jego elementy, instrukcja obsługi: * Common.pageInfo.namespace numer przestrzeni nazw (równe wgNamespaceNumber) * Common.pageInfo.name pełna nazwa strony * Common.pageInfo.title tytuł strony, czyli ostatnia część po '/' albo jest równe pageInfo.name, gdy nigdzie nie występuje slash * Common.pageInfo.book tytuł książki * Common.pageInfo.action akcja taka jaka jest w adresie URL pod "action=", w przypadku normalnego czytania strony, action jest równe "get" * Common.pageInfo.diff null w przypadku, gdy nie porównujemy wersji, w przeciwnym wypadku wartość występującą w adresie URL */ /*Przestrzeń nazw: Common, zdefiniowanym za pomocą tablicy*/ var Common=new Array(); /*Funkcje w przestrzeni nazw Common*/ Common.Naglowek=function(){ /* Skrypt odpowiedzialny za wyświetlanie szablonu Nagłówek [[Szablon:Nagłówek]] */ var hideAll = document.getElementById('mójNagłówekUkryj'); var noFooter = false; var footers = 0; var tags = document.getElementsByTagName('div'); for (var i = 0; i < tags.length; i++) { var el=tags[i].getAttribute("id"); if (el=='mojaStopka') footers++; else if (hideAll && (el=='mójNagłówek')) { tags[i].innerHTML=""; noFooter=true; } } if (noFooter) return; var footer = document.getElementById('mojaStopka'); if ((footer !== null) && (footers==1)) { var bodyContent = document.getElementById('bodyContent'); if (bodyContent !== null) { var s0=document.getElementById('mojaStopka0'); var s1=document.getElementById('mojaStopka1'); if ((s1 !== null) || ((s0 === null) && (bodyContent.innerHTML.length>8000))){ var strona=document.getElementById('strona'); if(strona!==null){ strona.appendChild(footer); }else{ var catlinks=document.getElementById('catlinks'); if(catlinks !== null){ bodyContent.insertBefore(footer,catlinks); }else{ bodyContent.appendChild(footer); } } } } } /* Koniec skryptu odpowiedzialnego za wyświetlanie szablonu Nagłówek [[Szablon:Nagłówek]] */ }; $(Common.Naglowek); /*Informacje o danej stronie*/ Common.PageInfoInit=function(){ var _g = /_/g; this.name = mw.config.get('wgPageName').replace(/_/g, ' '); this.namespace = mw.config.get('wgNamespaceNumber'); var i = this.name.search(/\/[^\/]*$/g); this.title = this.name.slice(i + 1); this.book = this.name.replace(/\/.*/g, ""); if ( document.URL.search("//pl.wikibooks.org/w/index.php") != -1 ) { re = /\&diff=/g; this.diff = re.test(document.URL); re = /\&action=[^\&]*/g; this.action = document.URL.match(re); if ( this.action === null ) { this.action = 'get'; } else { this.action = this.action[0].slice(8, this.action[0].length); } } else { this.diff = null; this.action = 'get'; } } Common.pageInfo = new Common.PageInfoInit(); /** Collapsible tables ********************************************************* * * Description: Allows tables to be collapsed, showing only the header. See * [[en:Wikipedia:NavFrame]]. * Maintainers: [[User:R. Koot]] */ Common.autoCollapse = 2; Common.collapseCaption = "ukryj"; Common.expandCaption = "pokaż"; Common.collapseTable=function( tableIndex ) { var Button = document.getElementById( "collapseButton" + tableIndex ); var Table = document.getElementById( "collapsibleTable" + tableIndex ); if ( !Table || !Button ) { return false; } var Rows = Table.rows; if ( Button.firstChild.data == Common.collapseCaption ) { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = "none"; } Button.firstChild.data = Common.expandCaption; } else { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = Rows[0].style.display; } Button.firstChild.data = Common.collapseCaption; } } Common.createCollapseButtons=function() { var tableIndex = 0; var NavigationBoxes = new Object(); var Tables = document.getElementsByTagName( "table" ); for ( var i = 0; i < Tables.length; i++ ) { if ( $(Tables[i]).hasClass( "collapsible" ) ) { /* only add button and increment count if there is a header row to work with */ var HeaderRow = Tables[i].getElementsByTagName( "tr" )[0]; if (!HeaderRow) continue; var Header = HeaderRow.getElementsByTagName( "th" )[0]; if (!Header) continue; NavigationBoxes[ tableIndex ] = Tables[i]; Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex ); var Button = document.createElement( "span" ); var ButtonLink = document.createElement( "a" ); var ButtonText = document.createTextNode( Common.collapseCaption ); Button.style.styleFloat = "right"; Button.style.cssFloat = "right"; Button.style.fontWeight = "normal"; Button.style.textAlign = "right"; Button.style.width = "6em"; ButtonLink.style.color = Header.style.color; ButtonLink.setAttribute( "id", "collapseButton" + tableIndex ); ButtonLink.setAttribute( "href", "javascript:Common.collapseTable(" + tableIndex + ");" ); ButtonLink.appendChild( ButtonText ); Button.appendChild( document.createTextNode( "[" ) ); Button.appendChild( ButtonLink ); Button.appendChild( document.createTextNode( "]" ) ); $(Header.childNodes[0]).has('a#collapseButton' + tableIndex).each(function(i,element){ $(element).remove(); }); Header.insertBefore( Button, Header.childNodes[0]); tableIndex++; } } for ( var i = 0; i < tableIndex; i++ ) { if ( $(NavigationBoxes[i]).hasClass( "collapsed" ) || ( tableIndex >= Common.autoCollapse && $(NavigationBoxes[i]).hasClass( "Common.autoCollapse" ) ) ) { collapseTable( i ); } else if ( $(NavigationBoxes[i]).hasClass( "innercollapse" ) ) { var element = NavigationBoxes[i]; while (element = element.parentNode) { if ( $(element).hasClass( "outercollapse" ) ) { collapseTable ( i ); break; } } } } } $(Common.createCollapseButtons ); /** Dynamic Navigation Bars (experimental) ************************************* * * Description: See [[Wikipedia:NavFrame]]. * Maintainers: UNMAINTAINED */ // set up the words in your language Common.NavigationBarHide = '[' + Common.collapseCaption + ']'; Common.NavigationBarShow = '[' + Common.expandCaption + ']'; // shows and hides content and picture (if available) of navigation bars // Parameters: // indexNavigationBar: the index of navigation bar to be toggled Common.toggleNavigationBar=function(indexNavigationBar) { var NavToggle = document.getElementById("NavToggle" + indexNavigationBar); var NavFrame = document.getElementById("NavFrame" + indexNavigationBar); if (!NavFrame || !NavToggle) { return false; } // if shown now if (NavToggle.firstChild.data == Common.NavigationBarHide) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) ) { NavChild.style.display = 'none'; } if ( $(NavChild).hasClass( 'NavContent') ) { NavChild.style.display = 'none'; } } NavToggle.firstChild.data = Common.NavigationBarShow; // if hidden now } else if (NavToggle.firstChild.data == Common.NavigationBarShow) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ($(NavChild).hasClass( 'NavPic')) { NavChild.style.display = 'block'; } if ($(NavChild).hasClass( 'NavContent')) { NavChild.style.display = 'block'; } } NavToggle.firstChild.data = Common.NavigationBarHide; } } // adds show/hide-button to navigation bars Common.createNavigationBarToggleButton=function() { var indexNavigationBar = 0; // iterate over all < div >-elements var divs = document.getElementsByTagName("div"); for (var i = 0; NavFrame = divs[i]; i++) { // if found a navigation bar if ($(NavFrame).hasClass( "NavFrame")) { indexNavigationBar++; var NavToggle = document.createElement("a"); NavToggle.className = 'NavToggle'; NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar); NavToggle.setAttribute('href', 'javascript:Common.toggleNavigationBar(' + indexNavigationBar + ');'); var isCollapsed = $(NavFrame).hasClass( "collapsed" ); /* * Check if any children are already hidden. This loop is here for backwards compatibility: * the old way of making NavFrames start out collapsed was to manually add style="display:none" * to all the NavPic/NavContent elements. Since this was bad for accessibility (no way to make * the content visible without JavaScript support), the new recommended way is to add the class * "collapsed" to the NavFrame itself, just like with collapsible tables. */ for (var NavChild = NavFrame.firstChild; NavChild != null && !isCollapsed; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) || $(NavChild).hasClass( 'NavContent' ) ) { if ( NavChild.style.display == 'none' ) { isCollapsed = true; } } } if (isCollapsed) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) || $(NavChild).hasClass( 'NavContent' ) ) { NavChild.style.display = 'none'; } } } var NavToggleText = document.createTextNode(isCollapsed ? Common.NavigationBarShow : Common.NavigationBarHide); NavToggle.appendChild(NavToggleText); // Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked) for(var j=0; j < NavFrame.childNodes.length; j++) { if ($(NavFrame.childNodes[j]).hasClass( "NavHead")) { $(NavFrame.childNodes[j]).children('a.NavToggle#NavToggle' + indexNavigationBar).each(function(i,element){ $(element).remove(); }); NavFrame.childNodes[j].appendChild(NavToggle); } } NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar); } } } $(Common.createNavigationBarToggleButton ); // Wyszukiwanie Google na stronach podręczników Common.googleSearchInitialized = false; Common.insertGoogleSearch=function() { if ( mw.config.get('wgNamespaceNumber') != 0 || Common.googleSearchInitialized ) { return; } Common.googleSearchInitialized = true; var google = "http://www.google.com/custom?sa=Google+Search&domains=pl.wikibooks.org/wiki/PAGE&sitesearch=pl.wikibooks.org/wiki/PAGE"; var ul = jQuery('#p-tb ul')[0]; if (!ul) { return; } var link = document.createElement('a'); var book = Common.pageInfo.book; if ( book.length == 1 || book.indexOf('++') != -1 || encodeURIComponent(book) != book ) { google = "http://www.google.com/custom?sa=Google+Search&domains=pl.wikibooks.org/wiki/&sitesearch=pl.wikibooks.org/wiki/&q=%22PAGE%22" } link.href = google.replace(/PAGE/g, encodeURIComponent(book)); link.appendChild(document.createTextNode("Szukaj w podręczniku")); var li = document.createElement('li'); li.id = "google-trick-search"; li.appendChild(link); $(ul).children('li#google-trick-search').each(function(i,element){ $(element).remove(); }); ul.insertBefore(li, ul.firstChild); } $(Common.insertGoogleSearch); /*Funkcja do liczenia, czy nastąpiło przepełnienie poziome lub pionowe*/ Common.PobierzSzerokoscPaskaPrzewijania=function(x_box_right){ var div = $('<div style="width:50px;height:50px;overflow:hidden;position:absolute;top:-200px;left:-200px;"><div style="height:100px;"></div></div>'); $('body').append(div); var w1 = $('div', div)["inner"+((x_box_right=="y")?"Width":"Height")](); div.css('overflow-'+(x_box_right||"y"), 'scroll'); var w2 = $('div', div)["inner"+((x_box_right=="y")?"Width":"Height")](); $(div).remove(); return (w1 - w2); } /*Funkcje do obsługi pasków przewijania*/ Common.ScrollBarOverflow=function(){ $('*.mw-overflow-x, *.mw-overflow-y').each(function(i,element_g){ /*start overflow*/ var comp=window.getComputedStyle(element_g, null); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var overflow=comp.getPropertyValue("overflow"); var overflow_x=$(element_g).hasClass('mw-overflow-x'); if(overflow_x){ var overflowX=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); if((overflowX)&&(overflowX=="auto")){ element_g.classList.remove("mw-scrollbar-overflow-x"); const hasHorizontalScrollbar = element_g.scrollWidth > element_g.clientWidth; // true lub false if(hasHorizontalScrollbar){ element_g.classList.add("mw-scrollbar-overflow-x"); } } } var overflow_y=$(element_g).hasClass('mw-overflow-y'); if(overflow_y){ var overflowY=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflowY)&&(overflowY=="auto")){ element_g.classList.remove("mw-scrollbar-overflow-y"); const hasVerticalScrollbar = element_g.scrollHeight > element_g.clientHeight; // true lub false if(hasVerticalScrollbar){ element_g.classList.add("mw-scrollbar-overflow-y"); } } } /*koniec overflow*/ }); } $(function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); $(window).on('scroll', function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); $(window).on('resize', function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); /*Funkcja symulująca właściwości position:sticky, wszędzie tam, gdzie nie można go użyć.*/ Common.StickyXY=function(){ $('*.mw-sticky-x, *.mw-sticky-y').each(function(i,element_g){ var comp=window.getComputedStyle(element_g, null); function FunStickyXY(height,top,bottom,width_box,left_box,right_box,x_box,x_box_right){ var pozycje_paskow=new Array(); $(element_g).find('*').each(function(i,element){ var comp=window.getComputedStyle(element, null); var overflow=comp.getPropertyValue("overflow"); var overflow_x=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); var overflow_y=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflow_x=="auto")||(overflow_x=="scroll")||(overflow_y=="auto")||(overflow_y=="scroll")){ pozycje_paskow.push(new Array(element,element.scrollTop,element.scrollLeft)); } }); var height_sticky=0; $('html.client-js.vector-sticky-header-enabled body.skin-vector-search-vue.vector-sticky-header-visible header.vector-sticky-header').each(function(i,el){ var rect_sticky=el.getBoundingClientRect(); height_sticky=parseInt(rect_sticky[height]); }); var StickyXYTopOld=$(element_g).data('stickyXYOld-'+top);var StickyXYBottomOld=$(element_g).data('stickyXYOld-'+bottom); if(StickyXYTopOld===undefined){ var topold_war=parseFloat(element_g.style[top]); $(element_g).data('stickyXYOld-'+top,((!isNaN(topold_war))?topold_war:0)); } if(StickyXYBottomOld===undefined){ var bottomold_war=parseFloat(element_g.style[bottom]); $(element_g).data('stickyXYOld-'+bottom,((!isNaN(bottomold_war))?bottomold_war:0)); } var topold=$(element_g).data('stickyXYOld-'+top)+height_sticky+5; var margintop=parseFloat(comp.getPropertyValue("margin-"+top)); margintop=((!isNaN(margintop))?margintop:0); var marginbottom=parseFloat(comp.getPropertyValue("margin-"+bottom)); marginbottom=((!isNaN(marginbottom))?marginbottom:0); var przodek_height=undefined; element_g.style[height]="auto"; element_g.style["max"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[top]="auto"; element_g.style[bottom]="auto"; if(width_box!=null){ element_g.style[width_box]="auto"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[left_box]="auto"; element_g.style[right_box]="0"; $(element_g).find('.mw-not-overflow-'+x_box+'.mw-overflow-'+x_box).each(function(i,element){ element.style[width_box]="auto"; }); } var parents_node_fun=$(element_g).parents('.mw-parent-node').first(); if((parents_node_fun==null)||(parents_node_fun.length==0)){return;} var width_rodzic=null; var rodzic_element=undefined; var comp_rodz; parents_node_fun.each(function(i,element){ comp_rodz=window.getComputedStyle(element,null); przodek_height=parseFloat(comp_rodz.getPropertyValue([height])); width_rodzic=width_box?parseFloat(comp_rodz.getPropertyValue([width_box])):null; rodzic_element=element; }); var height_box_real=parseFloat(comp.getPropertyValue(height)); var rect_dziecko=element_g.getBoundingClientRect(); var wys=document.documentElement["client"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]; var rect_rodzic; parents_node_fun.each(function(i,element){ rect_rodzic=element.getBoundingClientRect(); }); var top_ab=rect_rodzic[top]-margintop; var bottom_ab=(wys-rect_rodzic[bottom])-marginbottom; element_g.style["max"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=((Math.min(przodek_height,wys-((rect_rodzic[top]>=0)?(rect_rodzic[top]):(0))-((bottom_ab>=0)?(bottom_ab):(0)))-(((top_ab<=0)?(topold):(Math.max(0,topold-top_ab)))+((bottom_ab<=0)?($(element_g).data('stickyXYOld-'+bottom)+5):(Math.max(0,$(element_g).data('stickyXYOld-'+bottom)+5-bottom_ab)))+marginbottom+margintop))*(height_box_real/rect_dziecko[height]))+"px"; element_g.style[height]=(element_g["offset"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))])+"px"; var top_obj=(((top_ab>=0)?0:(-top_ab)))+((top_ab<=0)?(topold):(Math.max(0,topold-top_ab))); element_g.style[top]=top_obj+"px"; element_g.style[bottom]="auto"; if(width_box!=null){ element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; rodzic_element.style.position="static"; rodzic_element.style.overflow="hidden"; var width_box_real=parseFloat(comp.getPropertyValue(width_box)); var rect_dziecko=element_g.getBoundingClientRect(); if(parseInt(width_box_real)>parseInt(rect_dziecko[width_box])){ if(width_box=="width"){ element_g.classList.remove('mw-scrollbar-overflow-x'); }else{ element_g.classList.remove('mw-scrollbar-overflow-y'); } if(rect_dziecko[width_box]>width_rodzic){ if(width_box=="width"){ element_g.classList.add('mw-scrollbar-overflow-x'); }else{ element_g.classList.add('mw-scrollbar-overflow-y'); } } var width_box_real=parseFloat(comp.getPropertyValue(width_box)); var margin_all=parseFloat(comp.getPropertyValue("margin-"+left_box))+parseFloat(comp.getPropertyValue("margin-"+right_box)); margin_all+=parseFloat(comp_rodz.getPropertyValue("padding-"+left_box))+parseFloat(comp_rodz.getPropertyValue("padding-"+right_box)); var dlugosc=(width_rodzic-margin_all); dlugosc=((dlugosc>=0)?dlugosc:0); element_g.style.whiteSpace="nowrap"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width_box]))+"px"; element_g.style[width_box]=width_box_real+"px"; Common.ScrollBarOverflow(); $(element_g).find('.mw-overflow-'+x_box+'.mw-not-overflow-'+x_box+'.mw-scrollbar-overflow-'+x_box).each(function(i,element){ var comp_element=window.getComputedStyle(element, null) element.style[width_box]=(element["scroll"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]+Common.PobierzSzerokoscPaskaPrzewijania(x_box_right)+parseFloat(comp_element.getPropertyValue('padding-'+left_box))+parseFloat(comp_element.getPropertyValue('padding-'+right_box)))+"px"; element.classList.remove('mw-scrollbar-overflow-'+x_box_right); }); element_g.style.whiteSpace="normal"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[width_box]="auto"; var rect_dziecko=element_g.getBoundingClientRect(); var width_box_real=parseFloat(comp.getPropertyValue(width_box)); element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width_box]))+"px"; element_g.style[width_box]=width_box_real+"px"; element_g.style[left_box]="0"; element_g.style[right_box]="auto"; rodzic_element.style.position="relative"; }else{ element_g.style.whiteSpace="nowrap"; var szerokosc_box=rect_dziecko[width_box]; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(szerokosc_box)+"px"; element_g.style[width_box]=(szerokosc_box)+"px"; Common.ScrollBarOverflow(); $(element_g).find('.mw-overflow-'+x_box+'.mw-not-overflow-'+x_box+'.mw-scrollbar-overflow-'+x_box).each(function(i,element){ var comp_element=window.getComputedStyle(element, null); element.style[width_box]=(element["scroll"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]+Common.PobierzSzerokoscPaskaPrzewijania(x_box_right)+parseFloat(comp_element.getPropertyValue('padding-'+left_box))+parseFloat(comp_element.getPropertyValue('padding-'+right_box)))+"px"; element.classList.remove('mw-scrollbar-overflow-'+x_box_right); }); element_g.style.whiteSpace="normal"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[width_box]="auto"; var rect_dziecko=element_g.getBoundingClientRect(); var szerokosc_box=rect_dziecko[width_box]; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(szerokosc_box)+"px"; element_g.style[width_box]=(szerokosc_box)+"px"; var szerokosc=rect_dziecko[width_box]+parseFloat(comp.getPropertyValue("margin-"+left_box))+parseFloat(comp.getPropertyValue("margin-"+right_box)); if(parseInt(szerokosc)>parseInt(width_rodzic)){ element_g.style[right_box]="0"; element_g.style[left_box]="auto"; rodzic_element.style.overflow="visible"; }else{ element_g.style[left_box]="0"; element_g.style[right_box]="auto"; rodzic_element.style.position="relative"; } } } element_g.style[height]="auto"; element_g.style[height]=(element_g["offset"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))])+"px"; Common.ScrollBarOverflow(); for(var i in pozycje_paskow){ pozycje_paskow[i][0].scrollTop=pozycje_paskow[i][1]; pozycje_paskow[i][0].scrollLeft=pozycje_paskow[i][2]; } } element_g.classList.add('mw-sticky-js'); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var visibility=comp.getPropertyValue("visibility"); if(visibility=="hidden"){return;} var position=comp.getPropertyValue("position"); if(position!="absolute"){return;} var sticky_x=$(element_g).hasClass('mw-sticky-x'); var sticky_y=$(element_g).hasClass('mw-sticky-y'); if((sticky_x)&&(!sticky_y)){ var str=$(element_g).parents('.strona_górna, .strona_dolna').first(); if(str.hasClass('strona_górna')){ FunStickyXY("width","left","right","height","top","bottom","y","x"); }else if(str.hasClass('strona_dolna')){ FunStickyXY("width","left","right","height","bottom","top","x","y"); } }else if((!sticky_x)&&(sticky_y)){ var str=$(element_g).parents('.strona_prawa, .strona_lewa').first(); if(str.hasClass('strona_prawa')){ FunStickyXY("height","top","bottom","width","left","right","x","y"); }else if(str.hasClass('strona_lewa')){ FunStickyXY("height","top","bottom","width","right","left","x","y"); } }else{ FunStickyXY("width","left","right",null); FunStickyXY("height","top","bottom",null); } }); } $(function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); $(window).on('scroll', function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); $(window).on('resize', function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); /*Funkcja do ustawiania maksymalnego rozmiaru dziecka, względem rodzica, przy position:absolute*/ Common.OptimalXY=function(){ $('*.mw-optimal-x, *.mw-optimal-y').each(function(i,element_g){ var comp=window.getComputedStyle(element_g, null); function FunOptimalXY(width,left,right){ var pozycje_paskow=new Array(); $(element_g).find('*').each(function(i,element){ var comp=window.getComputedStyle(element, null); var overflow=comp.getPropertyValue("overflow"); var overflow_x=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); var overflow_y=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflow_x=="auto")||(overflow_x=="scroll")||(overflow_y=="auto")||(overflow_y=="scroll")){ pozycje_paskow.push(new Array(element,element.scrollTop,element.scrollLeft)); } }); var width_rodzic=null; var rodzic_node; var comp_rodz; $(element_g).parents('.mw-parent-node').first().each(function(i,element){ comp_rodz=window.getComputedStyle(element,null); width_rodzic=parseFloat(comp_rodz.getPropertyValue([width])); rodzic_node=element; }); if((width_rodzic!=null)&&(!isNaN(width_rodzic))){ element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; var width_box_real=parseFloat(comp.getPropertyValue(width)); var rect_dziecko=element_g.getBoundingClientRect(); if(width=="width"){ element_g.classList.remove('mw-scrollbar-overflow-x'); }else{ element_g.classList.remove('mw-scrollbar-overflow-y'); } if(parseInt(width_box_real)>parseInt(rect_dziecko[width])){ var rect_dziecko=element_g.getBoundingClientRect(); if(rect_dziecko[width]>width_rodzic){ if(width=="width"){ element_g.classList.add('mw-scrollbar-overflow-x'); }else{ element_g.classList.add('mw-scrollbar-overflow-y'); } } var width_box_real=parseFloat(comp.getPropertyValue(width)); var margin_all=parseFloat(comp.getPropertyValue("margin-"+left))+parseFloat(comp.getPropertyValue("margin-"+right)); margin_all+=parseFloat(comp_rodz.getPropertyValue("padding-"+left))+parseFloat(comp_rodz.getPropertyValue("padding-"+right)); var dlugosc=(width_rodzic-margin_all); dlugosc=((dlugosc>=0)?dlugosc:0); element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width]))+"px"; }else{ element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(rect_dziecko[width])+"px"; } var str=$(element_g).parents('.strona_prawa, .strona_lewa, .strona_górna, .strona_dolna').first(); if(!str.hasClass('strona_start-nawigacja_boksy')){ var rect_dziecko=element_g.getBoundingClientRect(); var szerokosc=rect_dziecko[width]+parseFloat(comp.getPropertyValue("margin-"+left))+parseFloat(comp.getPropertyValue("margin-"+right)); if(parseInt(szerokosc)>parseInt(width_rodzic)){ str.css('position','static'); }else{ str.css('position','relative'); } } } for(var i in pozycje_paskow){ pozycje_paskow[i][0].scrollTop=pozycje_paskow[i][1]; pozycje_paskow[i][0].scrollLeft=pozycje_paskow[i][2]; } }; element_g.classList.add('mw-optimal-js'); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var visibility=comp.getPropertyValue("visibility"); if(visibility=="hidden"){return;} var position=comp.getPropertyValue("position"); if(position!="absolute"){return;} var optimal_x=$(element_g).hasClass('mw-optimal-x'); var optimal_y=$(element_g).hasClass('mw-optimal-y'); if(optimal_x){ FunOptimalXY("width","left","right"); } if(optimal_y){ FunOptimalXY("height","top","bottom"); } }); } $(function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); $(window).on("scroll",function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); $(window).on("resize",function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); /*Uruchamianie dodatkowych funkcji, niż standardowe, w href w linkach rozwijanej tabeli TABLE lub ramki DIV, jeśli ona generuje zwiększenie rozmiarów, aby w rodzicu pojawił się pasek przewijania, z dodatkowymi opcjami generowanej przez arkusz kalkulacyjny CSS*/ Common.RamkiTableIDiv=function(obiekt,id_tabeli_lub_ramki,id_nazwa_a,fun_obiektu){ $(obiekt).each(function(i,element_f){ return new Promise(function(resolve,reject){ var czas=0; function Czekaj(){ if(czas>30000){ reject(); } var collapsebutton=$(element_f).find('a#'+id_nazwa_a+i); if((collapsebutton!==null)&&(collapsebutton.length>0)){ var tabele_lub_ramki=collapsebutton.parents('#'+id_tabeli_lub_ramki+i); if((tabele_lub_ramki===null)||(tabele_lub_ramki.length==0)){reject();} resolve(i); }else{ czas+=100; setTimeout(Czekaj,100); } } Czekaj(); }).then(function(i){ $('*.mw-overflow-x a#'+id_nazwa_a+i+', *.mw-overflow-y a#'+id_nazwa_a+i).each(function(j,element_g){ var href=element_g.getAttribute('href'); if((href!=null)&&(href!="")){ var col="[\\s;\\(\\,]*javascript:"+fun_obiektu.replace(/\./g,"\\.")+"\\s*\\(\\s*"+i+"\\s*\\)[\\s;\\)\\,]*"; var re_frame = new RegExp(col,'g'); var re_javascript=new RegExp("^[\\s;]*javascript:"); if((re_javascript.test(href))&&(re_frame.test(href))){ element_g.setAttribute('href',href.replace(/[;\s]*$/g,"")+';javascript:Common.ScrollBarOverflow();javascript:Common.StickyXY();javascript:Common.OptimalXY()') } } }); }).catch(function(){}); }); }; /*Dla menu rozwijanego tabeli TABLE zdefiniowanej na stronie MediaWiki:Common.js*/ Common.RamkiTableIDiv("table.collapsible",'collapsibleTable','collapseButton','Common.collapseTable'); /*Dla menu rozwijanej ramki DIV zdefiniowanej na stronie MediaWiki:Common.js*/ Common.RamkiTableIDiv("div.NavFrame",'NavFrame','NavToggle','Common.toggleNavigationBar'); /*Koniec dodatkowych funkcji*/ /*Uruchamianie dodatkowych zdarzeń do Common.StickyXY i OptimalXY*/ Common.ZdarzeniaDodatkoweFunkcyjneXY=function(css,fun_zdarz){ var fun_css=$(css); fun_css.on('mouseenter',fun_zdarz); fun_css.on('mouseleave',fun_zdarz); fun_css.on('transitionstart',fun_zdarz); fun_css.on('webkittransitionstart',fun_zdarz); fun_css.on('moztransitionstart',fun_zdarz); fun_css.on('otransitionstart',fun_zdarz); fun_css.on('transitionrun',fun_zdarz); fun_css.on('webkittransitionrun',fun_zdarz); fun_css.on('moztransitionrun',fun_zdarz); fun_css.on('otransitionrun',fun_zdarz); fun_css.on('transitioncancel',fun_zdarz); fun_css.on('webkittransitioncancel',fun_zdarz); fun_css.on('moztransitioncancel',fun_zdarz); fun_css.on('otransitioncancel',fun_zdarz); fun_css.on('transitionend',fun_zdarz); fun_css.on('webkittransitionend',fun_zdarz); fun_css.on('moztransitionend',fun_zdarz); fun_css.on('otransitionend',fun_zdarz); }; Common.ZdarzeniaDodatkoweFunkcyjneXY("*.mw-sticky-x, *.mw-sticky-y",Common.StickyXY); Common.ZdarzeniaDodatkoweFunkcyjneXY('*.mw-optimal-x, *.mw-optimal-y',Common.OptimalXY); /*Koniec dodatkowych zdarzeń*/ /*Program do obsługi szablonu StronaStart i jego pokrewnych książkowych*/ Common.StronaStart=function(){ var elements=$('.strona_start .strona .ciało_zawartości > .menu > .menu_boks'); elements.parent().show(); $('.strona_start').find('.strona_lewa .nawigacja_boksy, .strona_prawa .nawigacja_boksy').each(function(i,element){ $(element).css('visibility',"hidden"); }); $('.strona_start').find('.strona_lewa .nawigacja_spis, .strona_prawa .nawigacja_spis').each(function(i,element){ var czy_visible=$(element).css('visibility'); $(element).css('visibility',"visible"); var str=$(element).parents('.strona_prawa, .strona_lewa').first(); str.css('position','relative'); str.addClass('strona_start-nawigacja_spis'); str.removeClass('strona_start-nawigacja_boksy'); if(czy_visible=="hidden"){ $(Common.ScrollBarOverflow); $(Common.StickyXY); } }); function StronaStartFun(){ var id=this; $(id).parents('.strona_start').first().find('.strona .ciało_zawartości > .menu > .menu_boks').children().each(function(i,element){ var display=$(element).css('display'); if(display=="none"){ $(element).css('display',"block"); }else{ $(element).css('display',"none"); } }); $(id).parents('.strona_start').first().find('.strona_lewa, .strona_prawa').children().each(function(i,element){ var visibility=window.getComputedStyle(element, null).getPropertyValue('visibility'); if(visibility=="hidden"){ $(element).css('visibility',"visible"); var str=$(element).parents('.strona_prawa, .strona_lewa').first(); if($(element).hasClass('nawigacja_boksy')){ str.css('position','static'); str.addClass('strona_start-nawigacja_boksy'); str.removeClass('strona_start-nawigacja_spis'); $(Common.ScrollBarOverflow); $(Common.OptimalXY); }else if($(element).hasClass('nawigacja_spis')){ str.css('position','relative'); str.addClass('strona_start-nawigacja_spis'); str.removeClass('strona_start-nawigacja_boksy'); $(Common.ScrollBarOverflow); $(Common.StickyXY); } }else{ $(element).css('visibility',"hidden"); } }); } elements.on('click',StronaStartFun); } $(Common.StronaStart); 8k6wlge2yb3lx3woohrhkw0tgzd9ita 437156 437155 2022-08-07T17:40:20Z Persino 2851 javascript text/javascript mw.loader.load( '//pl.wikibooks.org/w/index.php?action=raw&ctype=text/javascript&title=Wikipedysta:Persino/Gadget-StronicowyParser.js', 'text/javascript', true ); /**/ /* Umieszczony tutaj kod JavaScript zostanie załadowany przez każdego użytkownika, podczas każdego ładowania strony. */ // Frame Busting if (top != self) top.location.href = self.location.href; /* * Zmienna Common.pageInfo, jego elementy, instrukcja obsługi: * Common.pageInfo.namespace numer przestrzeni nazw (równe wgNamespaceNumber) * Common.pageInfo.name pełna nazwa strony * Common.pageInfo.title tytuł strony, czyli ostatnia część po '/' albo jest równe pageInfo.name, gdy nigdzie nie występuje slash * Common.pageInfo.book tytuł książki * Common.pageInfo.action akcja taka jaka jest w adresie URL pod "action=", w przypadku normalnego czytania strony, action jest równe "get" * Common.pageInfo.diff null w przypadku, gdy nie porównujemy wersji, w przeciwnym wypadku wartość występującą w adresie URL */ /*Przestrzeń nazw: Common, zdefiniowanym za pomocą tablicy*/ var Common=new Array(); /*Funkcje w przestrzeni nazw Common*/ Common.Naglowek=function(){ /* Skrypt odpowiedzialny za wyświetlanie szablonu Nagłówek [[Szablon:Nagłówek]] */ var hideAll = document.getElementById('mójNagłówekUkryj'); var noFooter = false; var footers = 0; var tags = document.getElementsByTagName('div'); for (var i = 0; i < tags.length; i++) { var el=tags[i].getAttribute("id"); if (el=='mojaStopka') footers++; else if (hideAll && (el=='mójNagłówek')) { tags[i].innerHTML=""; noFooter=true; } } if (noFooter) return; var footer = document.getElementById('mojaStopka'); if ((footer !== null) && (footers==1)) { var bodyContent = document.getElementById('bodyContent'); if (bodyContent !== null) { var s0=document.getElementById('mojaStopka0'); var s1=document.getElementById('mojaStopka1'); if ((s1 !== null) || ((s0 === null) && (bodyContent.innerHTML.length>8000))){ var strona=document.getElementById('strona'); if(strona!==null){ strona.appendChild(footer); }else{ var catlinks=document.getElementById('catlinks'); if(catlinks !== null){ bodyContent.insertBefore(footer,catlinks); }else{ bodyContent.appendChild(footer); } } } } } /* Koniec skryptu odpowiedzialnego za wyświetlanie szablonu Nagłówek [[Szablon:Nagłówek]] */ }; $(Common.Naglowek); /*Informacje o danej stronie*/ Common.PageInfoInit=function(){ var _g = /_/g; this.name = mw.config.get('wgPageName').replace(/_/g, ' '); this.namespace = mw.config.get('wgNamespaceNumber'); var i = this.name.search(/\/[^\/]*$/g); this.title = this.name.slice(i + 1); this.book = this.name.replace(/\/.*/g, ""); if ( document.URL.search("//pl.wikibooks.org/w/index.php") != -1 ) { re = /\&diff=/g; this.diff = re.test(document.URL); re = /\&action=[^\&]*/g; this.action = document.URL.match(re); if ( this.action === null ) { this.action = 'get'; } else { this.action = this.action[0].slice(8, this.action[0].length); } } else { this.diff = null; this.action = 'get'; } } Common.pageInfo = new Common.PageInfoInit(); /** Collapsible tables ********************************************************* * * Description: Allows tables to be collapsed, showing only the header. See * [[en:Wikipedia:NavFrame]]. * Maintainers: [[User:R. Koot]] */ Common.autoCollapse = 2; Common.collapseCaption = "ukryj"; Common.expandCaption = "pokaż"; Common.collapseTable=function( tableIndex ) { var Button = document.getElementById( "collapseButton" + tableIndex ); var Table = document.getElementById( "collapsibleTable" + tableIndex ); if ( !Table || !Button ) { return false; } var Rows = Table.rows; if ( Button.firstChild.data == Common.collapseCaption ) { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = "none"; } Button.firstChild.data = Common.expandCaption; } else { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = Rows[0].style.display; } Button.firstChild.data = Common.collapseCaption; } } Common.createCollapseButtons=function() { var tableIndex = 0; var NavigationBoxes = new Object(); var Tables = document.getElementsByTagName( "table" ); for ( var i = 0; i < Tables.length; i++ ) { if ( $(Tables[i]).hasClass( "collapsible" ) ) { /* only add button and increment count if there is a header row to work with */ var HeaderRow = Tables[i].getElementsByTagName( "tr" )[0]; if (!HeaderRow) continue; var Header = HeaderRow.getElementsByTagName( "th" )[0]; if (!Header) continue; NavigationBoxes[ tableIndex ] = Tables[i]; Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex ); var Button = document.createElement( "span" ); var ButtonLink = document.createElement( "a" ); var ButtonText = document.createTextNode( Common.collapseCaption ); Button.style.styleFloat = "right"; Button.style.cssFloat = "right"; Button.style.fontWeight = "normal"; Button.style.textAlign = "right"; Button.style.width = "6em"; ButtonLink.style.color = Header.style.color; ButtonLink.setAttribute( "id", "collapseButton" + tableIndex ); ButtonLink.setAttribute( "href", "javascript:Common.collapseTable(" + tableIndex + ");" ); ButtonLink.appendChild( ButtonText ); Button.appendChild( document.createTextNode( "[" ) ); Button.appendChild( ButtonLink ); Button.appendChild( document.createTextNode( "]" ) ); $(Header.childNodes[0]).has('a#collapseButton' + tableIndex).each(function(i,element){ $(element).remove(); }); Header.insertBefore( Button, Header.childNodes[0]); tableIndex++; } } for ( var i = 0; i < tableIndex; i++ ) { if ( $(NavigationBoxes[i]).hasClass( "collapsed" ) || ( tableIndex >= Common.autoCollapse && $(NavigationBoxes[i]).hasClass( "Common.autoCollapse" ) ) ) { collapseTable( i ); } else if ( $(NavigationBoxes[i]).hasClass( "innercollapse" ) ) { var element = NavigationBoxes[i]; while (element = element.parentNode) { if ( $(element).hasClass( "outercollapse" ) ) { collapseTable ( i ); break; } } } } } $(Common.createCollapseButtons ); /** Dynamic Navigation Bars (experimental) ************************************* * * Description: See [[Wikipedia:NavFrame]]. * Maintainers: UNMAINTAINED */ // set up the words in your language Common.NavigationBarHide = '[' + Common.collapseCaption + ']'; Common.NavigationBarShow = '[' + Common.expandCaption + ']'; // shows and hides content and picture (if available) of navigation bars // Parameters: // indexNavigationBar: the index of navigation bar to be toggled Common.toggleNavigationBar=function(indexNavigationBar) { var NavToggle = document.getElementById("NavToggle" + indexNavigationBar); var NavFrame = document.getElementById("NavFrame" + indexNavigationBar); if (!NavFrame || !NavToggle) { return false; } // if shown now if (NavToggle.firstChild.data == Common.NavigationBarHide) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) ) { NavChild.style.display = 'none'; } if ( $(NavChild).hasClass( 'NavContent') ) { NavChild.style.display = 'none'; } } NavToggle.firstChild.data = Common.NavigationBarShow; // if hidden now } else if (NavToggle.firstChild.data == Common.NavigationBarShow) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ($(NavChild).hasClass( 'NavPic')) { NavChild.style.display = 'block'; } if ($(NavChild).hasClass( 'NavContent')) { NavChild.style.display = 'block'; } } NavToggle.firstChild.data = Common.NavigationBarHide; } } // adds show/hide-button to navigation bars Common.createNavigationBarToggleButton=function() { var indexNavigationBar = 0; // iterate over all < div >-elements var divs = document.getElementsByTagName("div"); for (var i = 0; NavFrame = divs[i]; i++) { // if found a navigation bar if ($(NavFrame).hasClass( "NavFrame")) { indexNavigationBar++; var NavToggle = document.createElement("a"); NavToggle.className = 'NavToggle'; NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar); NavToggle.setAttribute('href', 'javascript:Common.toggleNavigationBar(' + indexNavigationBar + ');'); var isCollapsed = $(NavFrame).hasClass( "collapsed" ); /* * Check if any children are already hidden. This loop is here for backwards compatibility: * the old way of making NavFrames start out collapsed was to manually add style="display:none" * to all the NavPic/NavContent elements. Since this was bad for accessibility (no way to make * the content visible without JavaScript support), the new recommended way is to add the class * "collapsed" to the NavFrame itself, just like with collapsible tables. */ for (var NavChild = NavFrame.firstChild; NavChild != null && !isCollapsed; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) || $(NavChild).hasClass( 'NavContent' ) ) { if ( NavChild.style.display == 'none' ) { isCollapsed = true; } } } if (isCollapsed) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) || $(NavChild).hasClass( 'NavContent' ) ) { NavChild.style.display = 'none'; } } } var NavToggleText = document.createTextNode(isCollapsed ? Common.NavigationBarShow : Common.NavigationBarHide); NavToggle.appendChild(NavToggleText); // Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked) for(var j=0; j < NavFrame.childNodes.length; j++) { if ($(NavFrame.childNodes[j]).hasClass( "NavHead")) { $(NavFrame.childNodes[j]).children('a.NavToggle#NavToggle' + indexNavigationBar).each(function(i,element){ $(element).remove(); }); NavFrame.childNodes[j].appendChild(NavToggle); } } NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar); } } } $(Common.createNavigationBarToggleButton ); // Wyszukiwanie Google na stronach podręczników Common.googleSearchInitialized = false; Common.insertGoogleSearch=function() { if ( mw.config.get('wgNamespaceNumber') != 0 || Common.googleSearchInitialized ) { return; } Common.googleSearchInitialized = true; var google = "http://www.google.com/custom?sa=Google+Search&domains=pl.wikibooks.org/wiki/PAGE&sitesearch=pl.wikibooks.org/wiki/PAGE"; var ul = jQuery('#p-tb ul')[0]; if (!ul) { return; } var link = document.createElement('a'); var book = Common.pageInfo.book; if ( book.length == 1 || book.indexOf('++') != -1 || encodeURIComponent(book) != book ) { google = "http://www.google.com/custom?sa=Google+Search&domains=pl.wikibooks.org/wiki/&sitesearch=pl.wikibooks.org/wiki/&q=%22PAGE%22" } link.href = google.replace(/PAGE/g, encodeURIComponent(book)); link.appendChild(document.createTextNode("Szukaj w podręczniku")); var li = document.createElement('li'); li.id = "google-trick-search"; li.appendChild(link); $(ul).children('li#google-trick-search').each(function(i,element){ $(element).remove(); }); ul.insertBefore(li, ul.firstChild); } $(Common.insertGoogleSearch); /*Funkcja do liczenia, czy nastąpiło przepełnienie poziome lub pionowe*/ Common.PobierzSzerokoscPaskaPrzewijania=function(x_box_right){ var div = $('<div style="width:50px;height:50px;overflow:hidden;position:absolute;top:-200px;left:-200px;"><div style="height:100px;"></div></div>'); $('body').append(div); var w1 = $('div', div)["inner"+((x_box_right=="y")?"Width":"Height")](); div.css('overflow-'+(x_box_right||"y"), 'scroll'); var w2 = $('div', div)["inner"+((x_box_right=="y")?"Width":"Height")](); $(div).remove(); return (w1 - w2); } /*Funkcje do obsługi pasków przewijania*/ Common.ScrollBarOverflow=function(){ $('*.mw-overflow-x, *.mw-overflow-y').each(function(i,element_g){ /*start overflow*/ var comp=window.getComputedStyle(element_g, null); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var overflow=comp.getPropertyValue("overflow"); var overflow_x=$(element_g).hasClass('mw-overflow-x'); if(overflow_x){ var overflowX=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); if((overflowX)&&(overflowX=="auto")){ element_g.classList.remove("mw-scrollbar-overflow-x"); const hasHorizontalScrollbar = element_g.scrollWidth > element_g.clientWidth; // true lub false if(hasHorizontalScrollbar){ element_g.classList.add("mw-scrollbar-overflow-x"); } } } var overflow_y=$(element_g).hasClass('mw-overflow-y'); if(overflow_y){ var overflowY=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflowY)&&(overflowY=="auto")){ element_g.classList.remove("mw-scrollbar-overflow-y"); const hasVerticalScrollbar = element_g.scrollHeight > element_g.clientHeight; // true lub false if(hasVerticalScrollbar){ element_g.classList.add("mw-scrollbar-overflow-y"); } } } /*koniec overflow*/ }); } $(function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); $(window).on('scroll', function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); $(window).on('resize', function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); /*Funkcja symulująca właściwości position:sticky, wszędzie tam, gdzie nie można go użyć.*/ Common.StickyXY=function(){ $('*.mw-sticky-x, *.mw-sticky-y').each(function(i,element_g){ console.log(element_g.style.marginTop) var comp=window.getComputedStyle(element_g, null); function FunStickyXY(height,top,bottom,width_box,left_box,right_box,x_box,x_box_right){ var pozycje_paskow=new Array(); $(element_g).find('*').each(function(i,element){ var comp=window.getComputedStyle(element, null); var overflow=comp.getPropertyValue("overflow"); var overflow_x=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); var overflow_y=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflow_x=="auto")||(overflow_x=="scroll")||(overflow_y=="auto")||(overflow_y=="scroll")){ pozycje_paskow.push(new Array(element,element.scrollTop,element.scrollLeft)); } }); var height_sticky=0; $('html.client-js.vector-sticky-header-enabled body.skin-vector-search-vue.vector-sticky-header-visible header.vector-sticky-header').each(function(i,el){ var rect_sticky=el.getBoundingClientRect(); height_sticky=parseInt(rect_sticky[height]); }); var StickyXYTopOld=$(element_g).data('stickyXYOld-'+top);var StickyXYBottomOld=$(element_g).data('stickyXYOld-'+bottom); if(StickyXYTopOld===undefined){ var topold_war=parseFloat(element_g.style[top]); $(element_g).data('stickyXYOld-'+top,((!isNaN(topold_war))?topold_war:0)); } if(StickyXYBottomOld===undefined){ var bottomold_war=parseFloat(element_g.style[bottom]); $(element_g).data('stickyXYOld-'+bottom,((!isNaN(bottomold_war))?bottomold_war:0)); } var topold=$(element_g).data('stickyXYOld-'+top)+height_sticky+5; var margintop=parseFloat(comp.getPropertyValue("margin-"+top)); margintop=((!isNaN(margintop))?margintop:0); var marginbottom=parseFloat(comp.getPropertyValue("margin-"+bottom)); marginbottom=((!isNaN(marginbottom))?marginbottom:0); var przodek_height=undefined; element_g.style[height]="auto"; element_g.style["max"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[top]="auto"; element_g.style[bottom]="auto"; if(width_box!=null){ element_g.style[width_box]="auto"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[left_box]="auto"; element_g.style[right_box]="0"; $(element_g).find('.mw-not-overflow-'+x_box+'.mw-overflow-'+x_box).each(function(i,element){ element.style[width_box]="auto"; }); } var parents_node_fun=$(element_g).parents('.mw-parent-node').first(); if((parents_node_fun==null)||(parents_node_fun.length==0)){return;} var width_rodzic=null; var rodzic_element=undefined; var comp_rodz; parents_node_fun.each(function(i,element){ comp_rodz=window.getComputedStyle(element,null); przodek_height=parseFloat(comp_rodz.getPropertyValue([height])); width_rodzic=width_box?parseFloat(comp_rodz.getPropertyValue([width_box])):null; rodzic_element=element; }); var height_box_real=parseFloat(comp.getPropertyValue(height)); var rect_dziecko=element_g.getBoundingClientRect(); var wys=document.documentElement["client"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]; var rect_rodzic; parents_node_fun.each(function(i,element){ rect_rodzic=element.getBoundingClientRect(); }); var top_ab=rect_rodzic[top]-margintop; var bottom_ab=(wys-rect_rodzic[bottom])-marginbottom; element_g.style["max"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=((Math.min(przodek_height,wys-((rect_rodzic[top]>=0)?(rect_rodzic[top]):(0))-((bottom_ab>=0)?(bottom_ab):(0)))-(((top_ab<=0)?(topold):(Math.max(0,topold-top_ab)))+((bottom_ab<=0)?($(element_g).data('stickyXYOld-'+bottom)+5):(Math.max(0,$(element_g).data('stickyXYOld-'+bottom)+5-bottom_ab)))+marginbottom+margintop))*(height_box_real/rect_dziecko[height]))+"px"; element_g.style[height]=(element_g["offset"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))])+"px"; var top_obj=(((top_ab>=0)?0:(-top_ab)))+((top_ab<=0)?(topold):(Math.max(0,topold-top_ab))); element_g.style[top]=top_obj+"px"; element_g.style[bottom]="auto"; if(width_box!=null){ element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; rodzic_element.style.position="static"; rodzic_element.style.overflow="hidden"; var width_box_real=parseFloat(comp.getPropertyValue(width_box)); var rect_dziecko=element_g.getBoundingClientRect(); if(parseInt(width_box_real)>parseInt(rect_dziecko[width_box])){ if(width_box=="width"){ element_g.classList.remove('mw-scrollbar-overflow-x'); }else{ element_g.classList.remove('mw-scrollbar-overflow-y'); } if(rect_dziecko[width_box]>width_rodzic){ if(width_box=="width"){ element_g.classList.add('mw-scrollbar-overflow-x'); }else{ element_g.classList.add('mw-scrollbar-overflow-y'); } } var width_box_real=parseFloat(comp.getPropertyValue(width_box)); var margin_all=parseFloat(comp.getPropertyValue("margin-"+left_box))+parseFloat(comp.getPropertyValue("margin-"+right_box)); margin_all+=parseFloat(comp_rodz.getPropertyValue("padding-"+left_box))+parseFloat(comp_rodz.getPropertyValue("padding-"+right_box)); var dlugosc=(width_rodzic-margin_all); dlugosc=((dlugosc>=0)?dlugosc:0); element_g.style.whiteSpace="nowrap"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width_box]))+"px"; element_g.style[width_box]=width_box_real+"px"; Common.ScrollBarOverflow(); $(element_g).find('.mw-overflow-'+x_box+'.mw-not-overflow-'+x_box+'.mw-scrollbar-overflow-'+x_box).each(function(i,element){ var comp_element=window.getComputedStyle(element, null) element.style[width_box]=(element["scroll"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]+Common.PobierzSzerokoscPaskaPrzewijania(x_box_right)+parseFloat(comp_element.getPropertyValue('padding-'+left_box))+parseFloat(comp_element.getPropertyValue('padding-'+right_box)))+"px"; element.classList.remove('mw-scrollbar-overflow-'+x_box_right); }); element_g.style.whiteSpace="normal"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[width_box]="auto"; var rect_dziecko=element_g.getBoundingClientRect(); var width_box_real=parseFloat(comp.getPropertyValue(width_box)); element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width_box]))+"px"; element_g.style[width_box]=width_box_real+"px"; element_g.style[left_box]="0"; element_g.style[right_box]="auto"; rodzic_element.style.position="relative"; }else{ element_g.style.whiteSpace="nowrap"; var szerokosc_box=rect_dziecko[width_box]; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(szerokosc_box)+"px"; element_g.style[width_box]=(szerokosc_box)+"px"; Common.ScrollBarOverflow(); $(element_g).find('.mw-overflow-'+x_box+'.mw-not-overflow-'+x_box+'.mw-scrollbar-overflow-'+x_box).each(function(i,element){ var comp_element=window.getComputedStyle(element, null); element.style[width_box]=(element["scroll"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]+Common.PobierzSzerokoscPaskaPrzewijania(x_box_right)+parseFloat(comp_element.getPropertyValue('padding-'+left_box))+parseFloat(comp_element.getPropertyValue('padding-'+right_box)))+"px"; element.classList.remove('mw-scrollbar-overflow-'+x_box_right); }); element_g.style.whiteSpace="normal"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[width_box]="auto"; var rect_dziecko=element_g.getBoundingClientRect(); var szerokosc_box=rect_dziecko[width_box]; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(szerokosc_box)+"px"; element_g.style[width_box]=(szerokosc_box)+"px"; var szerokosc=rect_dziecko[width_box]+parseFloat(comp.getPropertyValue("margin-"+left_box))+parseFloat(comp.getPropertyValue("margin-"+right_box)); if(parseInt(szerokosc)>parseInt(width_rodzic)){ element_g.style[right_box]="0"; element_g.style[left_box]="auto"; rodzic_element.style.overflow="visible"; }else{ element_g.style[left_box]="0"; element_g.style[right_box]="auto"; rodzic_element.style.position="relative"; } } } element_g.style[height]="auto"; element_g.style[height]=(element_g["offset"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))])+"px"; Common.ScrollBarOverflow(); for(var i in pozycje_paskow){ pozycje_paskow[i][0].scrollTop=pozycje_paskow[i][1]; pozycje_paskow[i][0].scrollLeft=pozycje_paskow[i][2]; } } element_g.classList.add('mw-sticky-js'); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var visibility=comp.getPropertyValue("visibility"); if(visibility=="hidden"){return;} var position=comp.getPropertyValue("position"); if(position!="absolute"){return;} var sticky_x=$(element_g).hasClass('mw-sticky-x'); var sticky_y=$(element_g).hasClass('mw-sticky-y'); if((sticky_x)&&(!sticky_y)){ var str=$(element_g).parents('.strona_górna, .strona_dolna').first(); if(str.hasClass('strona_górna')){ FunStickyXY("width","left","right","height","top","bottom","y","x"); }else if(str.hasClass('strona_dolna')){ FunStickyXY("width","left","right","height","bottom","top","x","y"); } }else if((!sticky_x)&&(sticky_y)){ var str=$(element_g).parents('.strona_prawa, .strona_lewa').first(); if(str.hasClass('strona_prawa')){ FunStickyXY("height","top","bottom","width","left","right","x","y"); }else if(str.hasClass('strona_lewa')){ FunStickyXY("height","top","bottom","width","right","left","x","y"); } }else{ FunStickyXY("width","left","right",null); FunStickyXY("height","top","bottom",null); } }); } $(function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); $(window).on('scroll', function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); $(window).on('resize', function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); /*Funkcja do ustawiania maksymalnego rozmiaru dziecka, względem rodzica, przy position:absolute*/ Common.OptimalXY=function(){ $('*.mw-optimal-x, *.mw-optimal-y').each(function(i,element_g){ var comp=window.getComputedStyle(element_g, null); function FunOptimalXY(width,left,right){ var pozycje_paskow=new Array(); $(element_g).find('*').each(function(i,element){ var comp=window.getComputedStyle(element, null); var overflow=comp.getPropertyValue("overflow"); var overflow_x=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); var overflow_y=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflow_x=="auto")||(overflow_x=="scroll")||(overflow_y=="auto")||(overflow_y=="scroll")){ pozycje_paskow.push(new Array(element,element.scrollTop,element.scrollLeft)); } }); var width_rodzic=null; var rodzic_node; var comp_rodz; $(element_g).parents('.mw-parent-node').first().each(function(i,element){ comp_rodz=window.getComputedStyle(element,null); width_rodzic=parseFloat(comp_rodz.getPropertyValue([width])); rodzic_node=element; }); if((width_rodzic!=null)&&(!isNaN(width_rodzic))){ element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; var width_box_real=parseFloat(comp.getPropertyValue(width)); var rect_dziecko=element_g.getBoundingClientRect(); if(width=="width"){ element_g.classList.remove('mw-scrollbar-overflow-x'); }else{ element_g.classList.remove('mw-scrollbar-overflow-y'); } if(parseInt(width_box_real)>parseInt(rect_dziecko[width])){ var rect_dziecko=element_g.getBoundingClientRect(); if(rect_dziecko[width]>width_rodzic){ if(width=="width"){ element_g.classList.add('mw-scrollbar-overflow-x'); }else{ element_g.classList.add('mw-scrollbar-overflow-y'); } } var width_box_real=parseFloat(comp.getPropertyValue(width)); var margin_all=parseFloat(comp.getPropertyValue("margin-"+left))+parseFloat(comp.getPropertyValue("margin-"+right)); margin_all+=parseFloat(comp_rodz.getPropertyValue("padding-"+left))+parseFloat(comp_rodz.getPropertyValue("padding-"+right)); var dlugosc=(width_rodzic-margin_all); dlugosc=((dlugosc>=0)?dlugosc:0); element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width]))+"px"; }else{ element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(rect_dziecko[width])+"px"; } var str=$(element_g).parents('.strona_prawa, .strona_lewa, .strona_górna, .strona_dolna').first(); if(!str.hasClass('strona_start-nawigacja_boksy')){ var rect_dziecko=element_g.getBoundingClientRect(); var szerokosc=rect_dziecko[width]+parseFloat(comp.getPropertyValue("margin-"+left))+parseFloat(comp.getPropertyValue("margin-"+right)); if(parseInt(szerokosc)>parseInt(width_rodzic)){ str.css('position','static'); }else{ str.css('position','relative'); } } } for(var i in pozycje_paskow){ pozycje_paskow[i][0].scrollTop=pozycje_paskow[i][1]; pozycje_paskow[i][0].scrollLeft=pozycje_paskow[i][2]; } }; element_g.classList.add('mw-optimal-js'); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var visibility=comp.getPropertyValue("visibility"); if(visibility=="hidden"){return;} var position=comp.getPropertyValue("position"); if(position!="absolute"){return;} var optimal_x=$(element_g).hasClass('mw-optimal-x'); var optimal_y=$(element_g).hasClass('mw-optimal-y'); if(optimal_x){ FunOptimalXY("width","left","right"); } if(optimal_y){ FunOptimalXY("height","top","bottom"); } }); } $(function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); $(window).on("scroll",function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); $(window).on("resize",function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); /*Uruchamianie dodatkowych funkcji, niż standardowe, w href w linkach rozwijanej tabeli TABLE lub ramki DIV, jeśli ona generuje zwiększenie rozmiarów, aby w rodzicu pojawił się pasek przewijania, z dodatkowymi opcjami generowanej przez arkusz kalkulacyjny CSS*/ Common.RamkiTableIDiv=function(obiekt,id_tabeli_lub_ramki,id_nazwa_a,fun_obiektu){ $(obiekt).each(function(i,element_f){ return new Promise(function(resolve,reject){ var czas=0; function Czekaj(){ if(czas>30000){ reject(); } var collapsebutton=$(element_f).find('a#'+id_nazwa_a+i); if((collapsebutton!==null)&&(collapsebutton.length>0)){ var tabele_lub_ramki=collapsebutton.parents('#'+id_tabeli_lub_ramki+i); if((tabele_lub_ramki===null)||(tabele_lub_ramki.length==0)){reject();} resolve(i); }else{ czas+=100; setTimeout(Czekaj,100); } } Czekaj(); }).then(function(i){ $('*.mw-overflow-x a#'+id_nazwa_a+i+', *.mw-overflow-y a#'+id_nazwa_a+i).each(function(j,element_g){ var href=element_g.getAttribute('href'); if((href!=null)&&(href!="")){ var col="[\\s;\\(\\,]*javascript:"+fun_obiektu.replace(/\./g,"\\.")+"\\s*\\(\\s*"+i+"\\s*\\)[\\s;\\)\\,]*"; var re_frame = new RegExp(col,'g'); var re_javascript=new RegExp("^[\\s;]*javascript:"); if((re_javascript.test(href))&&(re_frame.test(href))){ element_g.setAttribute('href',href.replace(/[;\s]*$/g,"")+';javascript:Common.ScrollBarOverflow();javascript:Common.StickyXY();javascript:Common.OptimalXY()') } } }); }).catch(function(){}); }); }; /*Dla menu rozwijanego tabeli TABLE zdefiniowanej na stronie MediaWiki:Common.js*/ Common.RamkiTableIDiv("table.collapsible",'collapsibleTable','collapseButton','Common.collapseTable'); /*Dla menu rozwijanej ramki DIV zdefiniowanej na stronie MediaWiki:Common.js*/ Common.RamkiTableIDiv("div.NavFrame",'NavFrame','NavToggle','Common.toggleNavigationBar'); /*Koniec dodatkowych funkcji*/ /*Uruchamianie dodatkowych zdarzeń do Common.StickyXY i OptimalXY*/ Common.ZdarzeniaDodatkoweFunkcyjneXY=function(css,fun_zdarz){ var fun_css=$(css); fun_css.on('mouseenter',fun_zdarz); fun_css.on('mouseleave',fun_zdarz); fun_css.on('transitionstart',fun_zdarz); fun_css.on('webkittransitionstart',fun_zdarz); fun_css.on('moztransitionstart',fun_zdarz); fun_css.on('otransitionstart',fun_zdarz); fun_css.on('transitionrun',fun_zdarz); fun_css.on('webkittransitionrun',fun_zdarz); fun_css.on('moztransitionrun',fun_zdarz); fun_css.on('otransitionrun',fun_zdarz); fun_css.on('transitioncancel',fun_zdarz); fun_css.on('webkittransitioncancel',fun_zdarz); fun_css.on('moztransitioncancel',fun_zdarz); fun_css.on('otransitioncancel',fun_zdarz); fun_css.on('transitionend',fun_zdarz); fun_css.on('webkittransitionend',fun_zdarz); fun_css.on('moztransitionend',fun_zdarz); fun_css.on('otransitionend',fun_zdarz); }; Common.ZdarzeniaDodatkoweFunkcyjneXY("*.mw-sticky-x, *.mw-sticky-y",Common.StickyXY); Common.ZdarzeniaDodatkoweFunkcyjneXY('*.mw-optimal-x, *.mw-optimal-y',Common.OptimalXY); /*Koniec dodatkowych zdarzeń*/ /*Program do obsługi szablonu StronaStart i jego pokrewnych książkowych*/ Common.StronaStart=function(){ var elements=$('.strona_start .strona .ciało_zawartości > .menu > .menu_boks'); elements.parent().show(); $('.strona_start').find('.strona_lewa .nawigacja_boksy, .strona_prawa .nawigacja_boksy').each(function(i,element){ $(element).css('visibility',"hidden"); }); $('.strona_start').find('.strona_lewa .nawigacja_spis, .strona_prawa .nawigacja_spis').each(function(i,element){ var czy_visible=$(element).css('visibility'); $(element).css('visibility',"visible"); var str=$(element).parents('.strona_prawa, .strona_lewa').first(); str.css('position','relative'); str.addClass('strona_start-nawigacja_spis'); str.removeClass('strona_start-nawigacja_boksy'); if(czy_visible=="hidden"){ $(Common.ScrollBarOverflow); $(Common.StickyXY); } }); function StronaStartFun(){ var id=this; $(id).parents('.strona_start').first().find('.strona .ciało_zawartości > .menu > .menu_boks').children().each(function(i,element){ var display=$(element).css('display'); if(display=="none"){ $(element).css('display',"block"); }else{ $(element).css('display',"none"); } }); $(id).parents('.strona_start').first().find('.strona_lewa, .strona_prawa').children().each(function(i,element){ var visibility=window.getComputedStyle(element, null).getPropertyValue('visibility'); if(visibility=="hidden"){ $(element).css('visibility',"visible"); var str=$(element).parents('.strona_prawa, .strona_lewa').first(); if($(element).hasClass('nawigacja_boksy')){ str.css('position','static'); str.addClass('strona_start-nawigacja_boksy'); str.removeClass('strona_start-nawigacja_spis'); $(Common.ScrollBarOverflow); $(Common.OptimalXY); }else if($(element).hasClass('nawigacja_spis')){ str.css('position','relative'); str.addClass('strona_start-nawigacja_spis'); str.removeClass('strona_start-nawigacja_boksy'); $(Common.ScrollBarOverflow); $(Common.StickyXY); } }else{ $(element).css('visibility',"hidden"); } }); } elements.on('click',StronaStartFun); } $(Common.StronaStart); 5uel3hj4uc3h29398ss640rqw4twmv8 437157 437156 2022-08-07T17:42:49Z Persino 2851 javascript text/javascript mw.loader.load( '//pl.wikibooks.org/w/index.php?action=raw&ctype=text/javascript&title=Wikipedysta:Persino/Gadget-StronicowyParser.js', 'text/javascript', true ); /**/ /* Umieszczony tutaj kod JavaScript zostanie załadowany przez każdego użytkownika, podczas każdego ładowania strony. */ // Frame Busting if (top != self) top.location.href = self.location.href; /* * Zmienna Common.pageInfo, jego elementy, instrukcja obsługi: * Common.pageInfo.namespace numer przestrzeni nazw (równe wgNamespaceNumber) * Common.pageInfo.name pełna nazwa strony * Common.pageInfo.title tytuł strony, czyli ostatnia część po '/' albo jest równe pageInfo.name, gdy nigdzie nie występuje slash * Common.pageInfo.book tytuł książki * Common.pageInfo.action akcja taka jaka jest w adresie URL pod "action=", w przypadku normalnego czytania strony, action jest równe "get" * Common.pageInfo.diff null w przypadku, gdy nie porównujemy wersji, w przeciwnym wypadku wartość występującą w adresie URL */ /*Przestrzeń nazw: Common, zdefiniowanym za pomocą tablicy*/ var Common=new Array(); /*Funkcje w przestrzeni nazw Common*/ Common.Naglowek=function(){ /* Skrypt odpowiedzialny za wyświetlanie szablonu Nagłówek [[Szablon:Nagłówek]] */ var hideAll = document.getElementById('mójNagłówekUkryj'); var noFooter = false; var footers = 0; var tags = document.getElementsByTagName('div'); for (var i = 0; i < tags.length; i++) { var el=tags[i].getAttribute("id"); if (el=='mojaStopka') footers++; else if (hideAll && (el=='mójNagłówek')) { tags[i].innerHTML=""; noFooter=true; } } if (noFooter) return; var footer = document.getElementById('mojaStopka'); if ((footer !== null) && (footers==1)) { var bodyContent = document.getElementById('bodyContent'); if (bodyContent !== null) { var s0=document.getElementById('mojaStopka0'); var s1=document.getElementById('mojaStopka1'); if ((s1 !== null) || ((s0 === null) && (bodyContent.innerHTML.length>8000))){ var strona=document.getElementById('strona'); if(strona!==null){ strona.appendChild(footer); }else{ var catlinks=document.getElementById('catlinks'); if(catlinks !== null){ bodyContent.insertBefore(footer,catlinks); }else{ bodyContent.appendChild(footer); } } } } } /* Koniec skryptu odpowiedzialnego za wyświetlanie szablonu Nagłówek [[Szablon:Nagłówek]] */ }; $(Common.Naglowek); /*Informacje o danej stronie*/ Common.PageInfoInit=function(){ var _g = /_/g; this.name = mw.config.get('wgPageName').replace(/_/g, ' '); this.namespace = mw.config.get('wgNamespaceNumber'); var i = this.name.search(/\/[^\/]*$/g); this.title = this.name.slice(i + 1); this.book = this.name.replace(/\/.*/g, ""); if ( document.URL.search("//pl.wikibooks.org/w/index.php") != -1 ) { re = /\&diff=/g; this.diff = re.test(document.URL); re = /\&action=[^\&]*/g; this.action = document.URL.match(re); if ( this.action === null ) { this.action = 'get'; } else { this.action = this.action[0].slice(8, this.action[0].length); } } else { this.diff = null; this.action = 'get'; } } Common.pageInfo = new Common.PageInfoInit(); /** Collapsible tables ********************************************************* * * Description: Allows tables to be collapsed, showing only the header. See * [[en:Wikipedia:NavFrame]]. * Maintainers: [[User:R. Koot]] */ Common.autoCollapse = 2; Common.collapseCaption = "ukryj"; Common.expandCaption = "pokaż"; Common.collapseTable=function( tableIndex ) { var Button = document.getElementById( "collapseButton" + tableIndex ); var Table = document.getElementById( "collapsibleTable" + tableIndex ); if ( !Table || !Button ) { return false; } var Rows = Table.rows; if ( Button.firstChild.data == Common.collapseCaption ) { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = "none"; } Button.firstChild.data = Common.expandCaption; } else { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = Rows[0].style.display; } Button.firstChild.data = Common.collapseCaption; } } Common.createCollapseButtons=function() { var tableIndex = 0; var NavigationBoxes = new Object(); var Tables = document.getElementsByTagName( "table" ); for ( var i = 0; i < Tables.length; i++ ) { if ( $(Tables[i]).hasClass( "collapsible" ) ) { /* only add button and increment count if there is a header row to work with */ var HeaderRow = Tables[i].getElementsByTagName( "tr" )[0]; if (!HeaderRow) continue; var Header = HeaderRow.getElementsByTagName( "th" )[0]; if (!Header) continue; NavigationBoxes[ tableIndex ] = Tables[i]; Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex ); var Button = document.createElement( "span" ); var ButtonLink = document.createElement( "a" ); var ButtonText = document.createTextNode( Common.collapseCaption ); Button.style.styleFloat = "right"; Button.style.cssFloat = "right"; Button.style.fontWeight = "normal"; Button.style.textAlign = "right"; Button.style.width = "6em"; ButtonLink.style.color = Header.style.color; ButtonLink.setAttribute( "id", "collapseButton" + tableIndex ); ButtonLink.setAttribute( "href", "javascript:Common.collapseTable(" + tableIndex + ");" ); ButtonLink.appendChild( ButtonText ); Button.appendChild( document.createTextNode( "[" ) ); Button.appendChild( ButtonLink ); Button.appendChild( document.createTextNode( "]" ) ); $(Header.childNodes[0]).has('a#collapseButton' + tableIndex).each(function(i,element){ $(element).remove(); }); Header.insertBefore( Button, Header.childNodes[0]); tableIndex++; } } for ( var i = 0; i < tableIndex; i++ ) { if ( $(NavigationBoxes[i]).hasClass( "collapsed" ) || ( tableIndex >= Common.autoCollapse && $(NavigationBoxes[i]).hasClass( "Common.autoCollapse" ) ) ) { collapseTable( i ); } else if ( $(NavigationBoxes[i]).hasClass( "innercollapse" ) ) { var element = NavigationBoxes[i]; while (element = element.parentNode) { if ( $(element).hasClass( "outercollapse" ) ) { collapseTable ( i ); break; } } } } } $(Common.createCollapseButtons ); /** Dynamic Navigation Bars (experimental) ************************************* * * Description: See [[Wikipedia:NavFrame]]. * Maintainers: UNMAINTAINED */ // set up the words in your language Common.NavigationBarHide = '[' + Common.collapseCaption + ']'; Common.NavigationBarShow = '[' + Common.expandCaption + ']'; // shows and hides content and picture (if available) of navigation bars // Parameters: // indexNavigationBar: the index of navigation bar to be toggled Common.toggleNavigationBar=function(indexNavigationBar) { var NavToggle = document.getElementById("NavToggle" + indexNavigationBar); var NavFrame = document.getElementById("NavFrame" + indexNavigationBar); if (!NavFrame || !NavToggle) { return false; } // if shown now if (NavToggle.firstChild.data == Common.NavigationBarHide) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) ) { NavChild.style.display = 'none'; } if ( $(NavChild).hasClass( 'NavContent') ) { NavChild.style.display = 'none'; } } NavToggle.firstChild.data = Common.NavigationBarShow; // if hidden now } else if (NavToggle.firstChild.data == Common.NavigationBarShow) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ($(NavChild).hasClass( 'NavPic')) { NavChild.style.display = 'block'; } if ($(NavChild).hasClass( 'NavContent')) { NavChild.style.display = 'block'; } } NavToggle.firstChild.data = Common.NavigationBarHide; } } // adds show/hide-button to navigation bars Common.createNavigationBarToggleButton=function() { var indexNavigationBar = 0; // iterate over all < div >-elements var divs = document.getElementsByTagName("div"); for (var i = 0; NavFrame = divs[i]; i++) { // if found a navigation bar if ($(NavFrame).hasClass( "NavFrame")) { indexNavigationBar++; var NavToggle = document.createElement("a"); NavToggle.className = 'NavToggle'; NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar); NavToggle.setAttribute('href', 'javascript:Common.toggleNavigationBar(' + indexNavigationBar + ');'); var isCollapsed = $(NavFrame).hasClass( "collapsed" ); /* * Check if any children are already hidden. This loop is here for backwards compatibility: * the old way of making NavFrames start out collapsed was to manually add style="display:none" * to all the NavPic/NavContent elements. Since this was bad for accessibility (no way to make * the content visible without JavaScript support), the new recommended way is to add the class * "collapsed" to the NavFrame itself, just like with collapsible tables. */ for (var NavChild = NavFrame.firstChild; NavChild != null && !isCollapsed; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) || $(NavChild).hasClass( 'NavContent' ) ) { if ( NavChild.style.display == 'none' ) { isCollapsed = true; } } } if (isCollapsed) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) || $(NavChild).hasClass( 'NavContent' ) ) { NavChild.style.display = 'none'; } } } var NavToggleText = document.createTextNode(isCollapsed ? Common.NavigationBarShow : Common.NavigationBarHide); NavToggle.appendChild(NavToggleText); // Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked) for(var j=0; j < NavFrame.childNodes.length; j++) { if ($(NavFrame.childNodes[j]).hasClass( "NavHead")) { $(NavFrame.childNodes[j]).children('a.NavToggle#NavToggle' + indexNavigationBar).each(function(i,element){ $(element).remove(); }); NavFrame.childNodes[j].appendChild(NavToggle); } } NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar); } } } $(Common.createNavigationBarToggleButton ); // Wyszukiwanie Google na stronach podręczników Common.googleSearchInitialized = false; Common.insertGoogleSearch=function() { if ( mw.config.get('wgNamespaceNumber') != 0 || Common.googleSearchInitialized ) { return; } Common.googleSearchInitialized = true; var google = "http://www.google.com/custom?sa=Google+Search&domains=pl.wikibooks.org/wiki/PAGE&sitesearch=pl.wikibooks.org/wiki/PAGE"; var ul = jQuery('#p-tb ul')[0]; if (!ul) { return; } var link = document.createElement('a'); var book = Common.pageInfo.book; if ( book.length == 1 || book.indexOf('++') != -1 || encodeURIComponent(book) != book ) { google = "http://www.google.com/custom?sa=Google+Search&domains=pl.wikibooks.org/wiki/&sitesearch=pl.wikibooks.org/wiki/&q=%22PAGE%22" } link.href = google.replace(/PAGE/g, encodeURIComponent(book)); link.appendChild(document.createTextNode("Szukaj w podręczniku")); var li = document.createElement('li'); li.id = "google-trick-search"; li.appendChild(link); $(ul).children('li#google-trick-search').each(function(i,element){ $(element).remove(); }); ul.insertBefore(li, ul.firstChild); } $(Common.insertGoogleSearch); /*Funkcja do liczenia, czy nastąpiło przepełnienie poziome lub pionowe*/ Common.PobierzSzerokoscPaskaPrzewijania=function(x_box_right){ var div = $('<div style="width:50px;height:50px;overflow:hidden;position:absolute;top:-200px;left:-200px;"><div style="height:100px;"></div></div>'); $('body').append(div); var w1 = $('div', div)["inner"+((x_box_right=="y")?"Width":"Height")](); div.css('overflow-'+(x_box_right||"y"), 'scroll'); var w2 = $('div', div)["inner"+((x_box_right=="y")?"Width":"Height")](); $(div).remove(); return (w1 - w2); } /*Funkcje do obsługi pasków przewijania*/ Common.ScrollBarOverflow=function(){ $('*.mw-overflow-x, *.mw-overflow-y').each(function(i,element_g){ /*start overflow*/ var comp=window.getComputedStyle(element_g, null); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var overflow=comp.getPropertyValue("overflow"); var overflow_x=$(element_g).hasClass('mw-overflow-x'); if(overflow_x){ var overflowX=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); if((overflowX)&&(overflowX=="auto")){ element_g.classList.remove("mw-scrollbar-overflow-x"); const hasHorizontalScrollbar = element_g.scrollWidth > element_g.clientWidth; // true lub false if(hasHorizontalScrollbar){ element_g.classList.add("mw-scrollbar-overflow-x"); } } } var overflow_y=$(element_g).hasClass('mw-overflow-y'); if(overflow_y){ var overflowY=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflowY)&&(overflowY=="auto")){ element_g.classList.remove("mw-scrollbar-overflow-y"); const hasVerticalScrollbar = element_g.scrollHeight > element_g.clientHeight; // true lub false if(hasVerticalScrollbar){ element_g.classList.add("mw-scrollbar-overflow-y"); } } } /*koniec overflow*/ }); } $(function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); $(window).on('scroll', function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); $(window).on('resize', function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); /*Funkcja symulująca właściwości position:sticky, wszędzie tam, gdzie nie można go użyć.*/ Common.StickyXY=function(){ $('*.mw-sticky-x, *.mw-sticky-y').each(function(i,element_g){ var comp=window.getComputedStyle(element_g, null); function FunStickyXY(height,top,bottom,width_box,left_box,right_box,x_box,x_box_right){ var pozycje_paskow=new Array(); $(element_g).find('*').each(function(i,element){ var comp=window.getComputedStyle(element, null); var overflow=comp.getPropertyValue("overflow"); var overflow_x=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); var overflow_y=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflow_x=="auto")||(overflow_x=="scroll")||(overflow_y=="auto")||(overflow_y=="scroll")){ pozycje_paskow.push(new Array(element,element.scrollTop,element.scrollLeft)); } }); var height_sticky=0; $('html.client-js.vector-sticky-header-enabled body.skin-vector-search-vue.vector-sticky-header-visible header.vector-sticky-header').each(function(i,el){ var rect_sticky=el.getBoundingClientRect(); height_sticky=parseInt(rect_sticky[height]); }); var StickyXYTopOld=$(element_g).data('stickyXYOld-'+top);var StickyXYBottomOld=$(element_g).data('stickyXYOld-'+bottom); if(StickyXYTopOld===undefined){ var topold_war=parseFloat(element_g.style[top]); $(element_g).data('stickyXYOld-'+top,((!isNaN(topold_war))?topold_war:0)); } if(StickyXYBottomOld===undefined){ var bottomold_war=parseFloat(element_g.style[bottom]); $(element_g).data('stickyXYOld-'+bottom,((!isNaN(bottomold_war))?bottomold_war:0)); } var topold=$(element_g).data('stickyXYOld-'+top)+height_sticky+5; var margintop=parseFloat(comp.getPropertyValue("margin-"+top)); margintop=((!isNaN(margintop))?margintop:0); var marginbottom=parseFloat(comp.getPropertyValue("margin-"+bottom)); marginbottom=((!isNaN(marginbottom))?marginbottom:0); var przodek_height=undefined; element_g.style[height]="auto"; element_g.style["max"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[top]="auto"; element_g.style[bottom]="auto"; if(width_box!=null){ element_g.style[width_box]="auto"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[left_box]="auto"; element_g.style[right_box]="0"; $(element_g).find('.mw-not-overflow-'+x_box+'.mw-overflow-'+x_box).each(function(i,element){ element.style[width_box]="auto"; }); } var parents_node_fun=$(element_g).parents('.mw-parent-node').first(); if((parents_node_fun==null)||(parents_node_fun.length==0)){return;} var width_rodzic=null; var rodzic_element=undefined; var comp_rodz; parents_node_fun.each(function(i,element){ comp_rodz=window.getComputedStyle(element,null); przodek_height=parseFloat(comp_rodz.getPropertyValue([height])); width_rodzic=width_box?parseFloat(comp_rodz.getPropertyValue([width_box])):null; rodzic_element=element; }); var height_box_real=parseFloat(comp.getPropertyValue(height)); var rect_dziecko=element_g.getBoundingClientRect(); var wys=document.documentElement["client"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]; var rect_rodzic; parents_node_fun.each(function(i,element){ rect_rodzic=element.getBoundingClientRect(); }); var top_ab=rect_rodzic[top]-margintop; var bottom_ab=(wys-rect_rodzic[bottom])-marginbottom; element_g.style["max"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=((Math.min(przodek_height,wys-((rect_rodzic[top]>=0)?(rect_rodzic[top]):(0))-((bottom_ab>=0)?(bottom_ab):(0)))-(((top_ab<=0)?(topold):(Math.max(0,topold-top_ab)))+((bottom_ab<=0)?($(element_g).data('stickyXYOld-'+bottom)+5):(Math.max(0,$(element_g).data('stickyXYOld-'+bottom)+5-bottom_ab)))+marginbottom+margintop))*(height_box_real/rect_dziecko[height]))+"px"; element_g.style[height]=(element_g["offset"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))])+"px"; var top_obj=(((top_ab>=0)?0:(-top_ab)))+((top_ab<=0)?(topold):(Math.max(0,topold-top_ab))); element_g.style[top]=top_obj+"px"; element_g.style[bottom]="auto"; if(width_box!=null){ element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; rodzic_element.style.position="static"; rodzic_element.style.overflow="hidden"; var width_box_real=parseFloat(comp.getPropertyValue(width_box)); var rect_dziecko=element_g.getBoundingClientRect(); if(parseInt(width_box_real)>parseInt(rect_dziecko[width_box])){ if(width_box=="width"){ element_g.classList.remove('mw-scrollbar-overflow-x'); }else{ element_g.classList.remove('mw-scrollbar-overflow-y'); } if(rect_dziecko[width_box]>width_rodzic){ if(width_box=="width"){ element_g.classList.add('mw-scrollbar-overflow-x'); }else{ element_g.classList.add('mw-scrollbar-overflow-y'); } } var width_box_real=parseFloat(comp.getPropertyValue(width_box)); var margin_all=parseFloat(comp.getPropertyValue("margin-"+left_box))+parseFloat(comp.getPropertyValue("margin-"+right_box)); margin_all+=parseFloat(comp_rodz.getPropertyValue("padding-"+left_box))+parseFloat(comp_rodz.getPropertyValue("padding-"+right_box)); var dlugosc=(width_rodzic-margin_all); dlugosc=((dlugosc>=0)?dlugosc:0); element_g.style.whiteSpace="nowrap"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width_box]))+"px"; element_g.style[width_box]=width_box_real+"px"; Common.ScrollBarOverflow(); $(element_g).find('.mw-overflow-'+x_box+'.mw-not-overflow-'+x_box+'.mw-scrollbar-overflow-'+x_box).each(function(i,element){ var comp_element=window.getComputedStyle(element, null) element.style[width_box]=(element["scroll"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]+Common.PobierzSzerokoscPaskaPrzewijania(x_box_right)+parseFloat(comp_element.getPropertyValue('padding-'+left_box))+parseFloat(comp_element.getPropertyValue('padding-'+right_box)))+"px"; element.classList.remove('mw-scrollbar-overflow-'+x_box_right); }); element_g.style.whiteSpace="normal"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[width_box]="auto"; var rect_dziecko=element_g.getBoundingClientRect(); var width_box_real=parseFloat(comp.getPropertyValue(width_box)); element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width_box]))+"px"; element_g.style[width_box]=width_box_real+"px"; element_g.style[left_box]="0"; element_g.style[right_box]="auto"; rodzic_element.style.position="relative"; }else{ element_g.style.whiteSpace="nowrap"; var szerokosc_box=rect_dziecko[width_box]; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(szerokosc_box)+"px"; element_g.style[width_box]=(szerokosc_box)+"px"; Common.ScrollBarOverflow(); $(element_g).find('.mw-overflow-'+x_box+'.mw-not-overflow-'+x_box+'.mw-scrollbar-overflow-'+x_box).each(function(i,element){ var comp_element=window.getComputedStyle(element, null); element.style[width_box]=(element["scroll"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]+Common.PobierzSzerokoscPaskaPrzewijania(x_box_right)+parseFloat(comp_element.getPropertyValue('padding-'+left_box))+parseFloat(comp_element.getPropertyValue('padding-'+right_box)))+"px"; element.classList.remove('mw-scrollbar-overflow-'+x_box_right); }); element_g.style.whiteSpace="normal"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[width_box]="auto"; var rect_dziecko=element_g.getBoundingClientRect(); var szerokosc_box=rect_dziecko[width_box]; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(szerokosc_box)+"px"; element_g.style[width_box]=(szerokosc_box)+"px"; var szerokosc=rect_dziecko[width_box]+parseFloat(comp.getPropertyValue("margin-"+left_box))+parseFloat(comp.getPropertyValue("margin-"+right_box)); if(parseInt(szerokosc)>parseInt(width_rodzic)){ element_g.style[right_box]="0"; element_g.style[left_box]="auto"; rodzic_element.style.overflow="visible"; }else{ element_g.style[left_box]="0"; element_g.style[right_box]="auto"; rodzic_element.style.position="relative"; } } } element_g.style[height]="auto"; element_g.style[height]=(element_g["offset"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))])+"px"; Common.ScrollBarOverflow(); for(var i in pozycje_paskow){ pozycje_paskow[i][0].scrollTop=pozycje_paskow[i][1]; pozycje_paskow[i][0].scrollLeft=pozycje_paskow[i][2]; } } element_g.classList.add('mw-sticky-js'); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var visibility=comp.getPropertyValue("visibility"); if(visibility=="hidden"){return;} var position=comp.getPropertyValue("position"); if(position!="absolute"){return;} var sticky_x=$(element_g).hasClass('mw-sticky-x'); var sticky_y=$(element_g).hasClass('mw-sticky-y'); if((sticky_x)&&(!sticky_y)){ var str=$(element_g).parents('.strona_górna, .strona_dolna').first(); if(str.hasClass('strona_górna')){ FunStickyXY("width","left","right","height","top","bottom","y","x"); }else if(str.hasClass('strona_dolna')){ FunStickyXY("width","left","right","height","bottom","top","x","y"); } }else if((!sticky_x)&&(sticky_y)){ var str=$(element_g).parents('.strona_prawa, .strona_lewa').first(); if(str.hasClass('strona_prawa')){ FunStickyXY("height","top","bottom","width","left","right","x","y"); }else if(str.hasClass('strona_lewa')){ FunStickyXY("height","top","bottom","width","right","left","x","y"); } }else{ FunStickyXY("width","left","right",null); FunStickyXY("height","top","bottom",null); } }); } $(function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); $(window).on('scroll', function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); $(window).on('resize', function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); /*Funkcja do ustawiania maksymalnego rozmiaru dziecka, względem rodzica, przy position:absolute*/ Common.OptimalXY=function(){ $('*.mw-optimal-x, *.mw-optimal-y').each(function(i,element_g){ var comp=window.getComputedStyle(element_g, null); function FunOptimalXY(width,left,right){ var pozycje_paskow=new Array(); $(element_g).find('*').each(function(i,element){ var comp=window.getComputedStyle(element, null); var overflow=comp.getPropertyValue("overflow"); var overflow_x=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); var overflow_y=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflow_x=="auto")||(overflow_x=="scroll")||(overflow_y=="auto")||(overflow_y=="scroll")){ pozycje_paskow.push(new Array(element,element.scrollTop,element.scrollLeft)); } }); var width_rodzic=null; var rodzic_node; var comp_rodz; $(element_g).parents('.mw-parent-node').first().each(function(i,element){ comp_rodz=window.getComputedStyle(element,null); width_rodzic=parseFloat(comp_rodz.getPropertyValue([width])); rodzic_node=element; }); if((width_rodzic!=null)&&(!isNaN(width_rodzic))){ element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; var width_box_real=parseFloat(comp.getPropertyValue(width)); var rect_dziecko=element_g.getBoundingClientRect(); if(width=="width"){ element_g.classList.remove('mw-scrollbar-overflow-x'); }else{ element_g.classList.remove('mw-scrollbar-overflow-y'); } if(parseInt(width_box_real)>parseInt(rect_dziecko[width])){ var rect_dziecko=element_g.getBoundingClientRect(); if(rect_dziecko[width]>width_rodzic){ if(width=="width"){ element_g.classList.add('mw-scrollbar-overflow-x'); }else{ element_g.classList.add('mw-scrollbar-overflow-y'); } } var width_box_real=parseFloat(comp.getPropertyValue(width)); var margin_all=parseFloat(comp.getPropertyValue("margin-"+left))+parseFloat(comp.getPropertyValue("margin-"+right)); margin_all+=parseFloat(comp_rodz.getPropertyValue("padding-"+left))+parseFloat(comp_rodz.getPropertyValue("padding-"+right)); var dlugosc=(width_rodzic-margin_all); dlugosc=((dlugosc>=0)?dlugosc:0); element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width]))+"px"; }else{ element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(rect_dziecko[width])+"px"; } var str=$(element_g).parents('.strona_prawa, .strona_lewa, .strona_górna, .strona_dolna').first(); if(!str.hasClass('strona_start-nawigacja_boksy')){ var rect_dziecko=element_g.getBoundingClientRect(); var szerokosc=rect_dziecko[width]+parseFloat(comp.getPropertyValue("margin-"+left))+parseFloat(comp.getPropertyValue("margin-"+right)); if(parseInt(szerokosc)>parseInt(width_rodzic)){ str.css('position','static'); }else{ str.css('position','relative'); } } } for(var i in pozycje_paskow){ pozycje_paskow[i][0].scrollTop=pozycje_paskow[i][1]; pozycje_paskow[i][0].scrollLeft=pozycje_paskow[i][2]; } }; element_g.classList.add('mw-optimal-js'); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var visibility=comp.getPropertyValue("visibility"); if(visibility=="hidden"){return;} var position=comp.getPropertyValue("position"); if(position!="absolute"){return;} var optimal_x=$(element_g).hasClass('mw-optimal-x'); var optimal_y=$(element_g).hasClass('mw-optimal-y'); if(optimal_x){ FunOptimalXY("width","left","right"); } if(optimal_y){ FunOptimalXY("height","top","bottom"); } }); } $(function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); $(window).on("scroll",function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); $(window).on("resize",function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); /*Uruchamianie dodatkowych funkcji, niż standardowe, w href w linkach rozwijanej tabeli TABLE lub ramki DIV, jeśli ona generuje zwiększenie rozmiarów, aby w rodzicu pojawił się pasek przewijania, z dodatkowymi opcjami generowanej przez arkusz kalkulacyjny CSS*/ Common.RamkiTableIDiv=function(obiekt,id_tabeli_lub_ramki,id_nazwa_a,fun_obiektu){ $(obiekt).each(function(i,element_f){ return new Promise(function(resolve,reject){ var czas=0; function Czekaj(){ if(czas>30000){ reject(); } var collapsebutton=$(element_f).find('a#'+id_nazwa_a+i); if((collapsebutton!==null)&&(collapsebutton.length>0)){ var tabele_lub_ramki=collapsebutton.parents('#'+id_tabeli_lub_ramki+i); if((tabele_lub_ramki===null)||(tabele_lub_ramki.length==0)){reject();} resolve(i); }else{ czas+=100; setTimeout(Czekaj,100); } } Czekaj(); }).then(function(i){ $('*.mw-overflow-x a#'+id_nazwa_a+i+', *.mw-overflow-y a#'+id_nazwa_a+i).each(function(j,element_g){ var href=element_g.getAttribute('href'); if((href!=null)&&(href!="")){ var col="[\\s;\\(\\,]*javascript:"+fun_obiektu.replace(/\./g,"\\.")+"\\s*\\(\\s*"+i+"\\s*\\)[\\s;\\)\\,]*"; var re_frame = new RegExp(col,'g'); var re_javascript=new RegExp("^[\\s;]*javascript:"); if((re_javascript.test(href))&&(re_frame.test(href))){ element_g.setAttribute('href',href.replace(/[;\s]*$/g,"")+';javascript:Common.ScrollBarOverflow();javascript:Common.StickyXY();javascript:Common.OptimalXY()') } } }); }).catch(function(){}); }); }; /*Dla menu rozwijanego tabeli TABLE zdefiniowanej na stronie MediaWiki:Common.js*/ Common.RamkiTableIDiv("table.collapsible",'collapsibleTable','collapseButton','Common.collapseTable'); /*Dla menu rozwijanej ramki DIV zdefiniowanej na stronie MediaWiki:Common.js*/ Common.RamkiTableIDiv("div.NavFrame",'NavFrame','NavToggle','Common.toggleNavigationBar'); /*Koniec dodatkowych funkcji*/ /*Uruchamianie dodatkowych zdarzeń do Common.StickyXY i OptimalXY*/ Common.ZdarzeniaDodatkoweFunkcyjneXY=function(css,fun_zdarz){ var fun_css=$(css); fun_css.on('mouseenter',fun_zdarz); fun_css.on('mouseleave',fun_zdarz); fun_css.on('transitionstart',fun_zdarz); fun_css.on('webkittransitionstart',fun_zdarz); fun_css.on('moztransitionstart',fun_zdarz); fun_css.on('otransitionstart',fun_zdarz); fun_css.on('transitionrun',fun_zdarz); fun_css.on('webkittransitionrun',fun_zdarz); fun_css.on('moztransitionrun',fun_zdarz); fun_css.on('otransitionrun',fun_zdarz); fun_css.on('transitioncancel',fun_zdarz); fun_css.on('webkittransitioncancel',fun_zdarz); fun_css.on('moztransitioncancel',fun_zdarz); fun_css.on('otransitioncancel',fun_zdarz); fun_css.on('transitionend',fun_zdarz); fun_css.on('webkittransitionend',fun_zdarz); fun_css.on('moztransitionend',fun_zdarz); fun_css.on('otransitionend',fun_zdarz); }; Common.ZdarzeniaDodatkoweFunkcyjneXY("*.mw-sticky-x, *.mw-sticky-y",Common.StickyXY); Common.ZdarzeniaDodatkoweFunkcyjneXY('*.mw-optimal-x, *.mw-optimal-y',Common.OptimalXY); /*Koniec dodatkowych zdarzeń*/ /*Program do obsługi szablonu StronaStart i jego pokrewnych książkowych*/ Common.StronaStart=function(){ var elements=$('.strona_start .strona .ciało_zawartości > .menu > .menu_boks'); elements.parent().show(); $('.strona_start').find('.strona_lewa .nawigacja_boksy, .strona_prawa .nawigacja_boksy').each(function(i,element){ $(element).css('visibility',"hidden"); }); $('.strona_start').find('.strona_lewa .nawigacja_spis, .strona_prawa .nawigacja_spis').each(function(i,element){ var czy_visible=$(element).css('visibility'); $(element).css('visibility',"visible"); var str=$(element).parents('.strona_prawa, .strona_lewa').first(); str.css('position','relative'); str.addClass('strona_start-nawigacja_spis'); str.removeClass('strona_start-nawigacja_boksy'); if(czy_visible=="hidden"){ $(Common.ScrollBarOverflow); $(Common.StickyXY); } }); function StronaStartFun(){ var id=this; $(id).parents('.strona_start').first().find('.strona .ciało_zawartości > .menu > .menu_boks').children().each(function(i,element){ var display=$(element).css('display'); if(display=="none"){ $(element).css('display',"block"); }else{ $(element).css('display',"none"); } }); $(id).parents('.strona_start').first().find('.strona_lewa, .strona_prawa').children().each(function(i,element){ var visibility=window.getComputedStyle(element, null).getPropertyValue('visibility'); if(visibility=="hidden"){ $(element).css('visibility',"visible"); var str=$(element).parents('.strona_prawa, .strona_lewa').first(); if($(element).hasClass('nawigacja_boksy')){ str.css('position','static'); str.addClass('strona_start-nawigacja_boksy'); str.removeClass('strona_start-nawigacja_spis'); $(Common.ScrollBarOverflow); $(Common.OptimalXY); }else if($(element).hasClass('nawigacja_spis')){ str.css('position','relative'); str.addClass('strona_start-nawigacja_spis'); str.removeClass('strona_start-nawigacja_boksy'); $(Common.ScrollBarOverflow); $(Common.StickyXY); } }else{ $(element).css('visibility',"hidden"); } }); } elements.on('click',StronaStartFun); } $(Common.StronaStart); 4opr5z3lfmthoec36xcdj4zr2p6tw74 437158 437157 2022-08-07T18:00:35Z Persino 2851 javascript text/javascript mw.loader.load( '//pl.wikibooks.org/w/index.php?action=raw&ctype=text/javascript&title=Wikipedysta:Persino/Gadget-StronicowyParser.js', 'text/javascript', true ); /**/ /* Umieszczony tutaj kod JavaScript zostanie załadowany przez każdego użytkownika, podczas każdego ładowania strony. */ // Frame Busting if (top != self) top.location.href = self.location.href; /* * Zmienna Common.pageInfo, jego elementy, instrukcja obsługi: * Common.pageInfo.namespace numer przestrzeni nazw (równe wgNamespaceNumber) * Common.pageInfo.name pełna nazwa strony * Common.pageInfo.title tytuł strony, czyli ostatnia część po '/' albo jest równe pageInfo.name, gdy nigdzie nie występuje slash * Common.pageInfo.book tytuł książki * Common.pageInfo.action akcja taka jaka jest w adresie URL pod "action=", w przypadku normalnego czytania strony, action jest równe "get" * Common.pageInfo.diff null w przypadku, gdy nie porównujemy wersji, w przeciwnym wypadku wartość występującą w adresie URL */ /*Przestrzeń nazw: Common, zdefiniowanym za pomocą tablicy*/ var Common=new Array(); /*Funkcje w przestrzeni nazw Common*/ Common.Naglowek=function(){ /* Skrypt odpowiedzialny za wyświetlanie szablonu Nagłówek [[Szablon:Nagłówek]] */ var hideAll = document.getElementById('mójNagłówekUkryj'); var noFooter = false; var footers = 0; var tags = document.getElementsByTagName('div'); for (var i = 0; i < tags.length; i++) { var el=tags[i].getAttribute("id"); if (el=='mojaStopka') footers++; else if (hideAll && (el=='mójNagłówek')) { tags[i].innerHTML=""; noFooter=true; } } if (noFooter) return; var footer = document.getElementById('mojaStopka'); if ((footer !== null) && (footers==1)) { var bodyContent = document.getElementById('bodyContent'); if (bodyContent !== null) { var s0=document.getElementById('mojaStopka0'); var s1=document.getElementById('mojaStopka1'); if ((s1 !== null) || ((s0 === null) && (bodyContent.innerHTML.length>8000))){ var strona=document.getElementById('strona'); if(strona!==null){ strona.appendChild(footer); }else{ var catlinks=document.getElementById('catlinks'); if(catlinks !== null){ bodyContent.insertBefore(footer,catlinks); }else{ bodyContent.appendChild(footer); } } } } } /* Koniec skryptu odpowiedzialnego za wyświetlanie szablonu Nagłówek [[Szablon:Nagłówek]] */ }; $(Common.Naglowek); /*Informacje o danej stronie*/ Common.PageInfoInit=function(){ var _g = /_/g; this.name = mw.config.get('wgPageName').replace(/_/g, ' '); this.namespace = mw.config.get('wgNamespaceNumber'); var i = this.name.search(/\/[^\/]*$/g); this.title = this.name.slice(i + 1); this.book = this.name.replace(/\/.*/g, ""); if ( document.URL.search("//pl.wikibooks.org/w/index.php") != -1 ) { re = /\&diff=/g; this.diff = re.test(document.URL); re = /\&action=[^\&]*/g; this.action = document.URL.match(re); if ( this.action === null ) { this.action = 'get'; } else { this.action = this.action[0].slice(8, this.action[0].length); } } else { this.diff = null; this.action = 'get'; } } Common.pageInfo = new Common.PageInfoInit(); /** Collapsible tables ********************************************************* * * Description: Allows tables to be collapsed, showing only the header. See * [[en:Wikipedia:NavFrame]]. * Maintainers: [[User:R. Koot]] */ Common.autoCollapse = 2; Common.collapseCaption = "ukryj"; Common.expandCaption = "pokaż"; Common.collapseTable=function( tableIndex ) { var Button = document.getElementById( "collapseButton" + tableIndex ); var Table = document.getElementById( "collapsibleTable" + tableIndex ); if ( !Table || !Button ) { return false; } var Rows = Table.rows; if ( Button.firstChild.data == Common.collapseCaption ) { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = "none"; } Button.firstChild.data = Common.expandCaption; } else { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = Rows[0].style.display; } Button.firstChild.data = Common.collapseCaption; } } Common.createCollapseButtons=function() { var tableIndex = 0; var NavigationBoxes = new Object(); var Tables = document.getElementsByTagName( "table" ); for ( var i = 0; i < Tables.length; i++ ) { if ( $(Tables[i]).hasClass( "collapsible" ) ) { /* only add button and increment count if there is a header row to work with */ var HeaderRow = Tables[i].getElementsByTagName( "tr" )[0]; if (!HeaderRow) continue; var Header = HeaderRow.getElementsByTagName( "th" )[0]; if (!Header) continue; NavigationBoxes[ tableIndex ] = Tables[i]; Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex ); var Button = document.createElement( "span" ); var ButtonLink = document.createElement( "a" ); var ButtonText = document.createTextNode( Common.collapseCaption ); Button.style.styleFloat = "right"; Button.style.cssFloat = "right"; Button.style.fontWeight = "normal"; Button.style.textAlign = "right"; Button.style.width = "6em"; ButtonLink.style.color = Header.style.color; ButtonLink.setAttribute( "id", "collapseButton" + tableIndex ); ButtonLink.setAttribute( "href", "javascript:Common.collapseTable(" + tableIndex + ");" ); ButtonLink.appendChild( ButtonText ); Button.appendChild( document.createTextNode( "[" ) ); Button.appendChild( ButtonLink ); Button.appendChild( document.createTextNode( "]" ) ); $(Header.childNodes[0]).has('a#collapseButton' + tableIndex).each(function(i,element){ $(element).remove(); }); Header.insertBefore( Button, Header.childNodes[0]); tableIndex++; } } for ( var i = 0; i < tableIndex; i++ ) { if ( $(NavigationBoxes[i]).hasClass( "collapsed" ) || ( tableIndex >= Common.autoCollapse && $(NavigationBoxes[i]).hasClass( "Common.autoCollapse" ) ) ) { collapseTable( i ); } else if ( $(NavigationBoxes[i]).hasClass( "innercollapse" ) ) { var element = NavigationBoxes[i]; while (element = element.parentNode) { if ( $(element).hasClass( "outercollapse" ) ) { collapseTable ( i ); break; } } } } } $(Common.createCollapseButtons ); /** Dynamic Navigation Bars (experimental) ************************************* * * Description: See [[Wikipedia:NavFrame]]. * Maintainers: UNMAINTAINED */ // set up the words in your language Common.NavigationBarHide = '[' + Common.collapseCaption + ']'; Common.NavigationBarShow = '[' + Common.expandCaption + ']'; // shows and hides content and picture (if available) of navigation bars // Parameters: // indexNavigationBar: the index of navigation bar to be toggled Common.toggleNavigationBar=function(indexNavigationBar) { var NavToggle = document.getElementById("NavToggle" + indexNavigationBar); var NavFrame = document.getElementById("NavFrame" + indexNavigationBar); if (!NavFrame || !NavToggle) { return false; } // if shown now if (NavToggle.firstChild.data == Common.NavigationBarHide) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) ) { NavChild.style.display = 'none'; } if ( $(NavChild).hasClass( 'NavContent') ) { NavChild.style.display = 'none'; } } NavToggle.firstChild.data = Common.NavigationBarShow; // if hidden now } else if (NavToggle.firstChild.data == Common.NavigationBarShow) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ($(NavChild).hasClass( 'NavPic')) { NavChild.style.display = 'block'; } if ($(NavChild).hasClass( 'NavContent')) { NavChild.style.display = 'block'; } } NavToggle.firstChild.data = Common.NavigationBarHide; } } // adds show/hide-button to navigation bars Common.createNavigationBarToggleButton=function() { var indexNavigationBar = 0; // iterate over all < div >-elements var divs = document.getElementsByTagName("div"); for (var i = 0; NavFrame = divs[i]; i++) { // if found a navigation bar if ($(NavFrame).hasClass( "NavFrame")) { indexNavigationBar++; var NavToggle = document.createElement("a"); NavToggle.className = 'NavToggle'; NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar); NavToggle.setAttribute('href', 'javascript:Common.toggleNavigationBar(' + indexNavigationBar + ');'); var isCollapsed = $(NavFrame).hasClass( "collapsed" ); /* * Check if any children are already hidden. This loop is here for backwards compatibility: * the old way of making NavFrames start out collapsed was to manually add style="display:none" * to all the NavPic/NavContent elements. Since this was bad for accessibility (no way to make * the content visible without JavaScript support), the new recommended way is to add the class * "collapsed" to the NavFrame itself, just like with collapsible tables. */ for (var NavChild = NavFrame.firstChild; NavChild != null && !isCollapsed; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) || $(NavChild).hasClass( 'NavContent' ) ) { if ( NavChild.style.display == 'none' ) { isCollapsed = true; } } } if (isCollapsed) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) || $(NavChild).hasClass( 'NavContent' ) ) { NavChild.style.display = 'none'; } } } var NavToggleText = document.createTextNode(isCollapsed ? Common.NavigationBarShow : Common.NavigationBarHide); NavToggle.appendChild(NavToggleText); // Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked) for(var j=0; j < NavFrame.childNodes.length; j++) { if ($(NavFrame.childNodes[j]).hasClass( "NavHead")) { $(NavFrame.childNodes[j]).children('a.NavToggle#NavToggle' + indexNavigationBar).each(function(i,element){ $(element).remove(); }); NavFrame.childNodes[j].appendChild(NavToggle); } } NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar); } } } $(Common.createNavigationBarToggleButton ); // Wyszukiwanie Google na stronach podręczników Common.googleSearchInitialized = false; Common.insertGoogleSearch=function() { if ( mw.config.get('wgNamespaceNumber') != 0 || Common.googleSearchInitialized ) { return; } Common.googleSearchInitialized = true; var google = "http://www.google.com/custom?sa=Google+Search&domains=pl.wikibooks.org/wiki/PAGE&sitesearch=pl.wikibooks.org/wiki/PAGE"; var ul = jQuery('#p-tb ul')[0]; if (!ul) { return; } var link = document.createElement('a'); var book = Common.pageInfo.book; if ( book.length == 1 || book.indexOf('++') != -1 || encodeURIComponent(book) != book ) { google = "http://www.google.com/custom?sa=Google+Search&domains=pl.wikibooks.org/wiki/&sitesearch=pl.wikibooks.org/wiki/&q=%22PAGE%22" } link.href = google.replace(/PAGE/g, encodeURIComponent(book)); link.appendChild(document.createTextNode("Szukaj w podręczniku")); var li = document.createElement('li'); li.id = "google-trick-search"; li.appendChild(link); $(ul).children('li#google-trick-search').each(function(i,element){ $(element).remove(); }); ul.insertBefore(li, ul.firstChild); } $(Common.insertGoogleSearch); /*Funkcja do liczenia, czy nastąpiło przepełnienie poziome lub pionowe*/ Common.PobierzSzerokoscPaskaPrzewijania=function(x_box_right){ var div = $('<div style="width:50px;height:50px;overflow:hidden;position:absolute;top:-200px;left:-200px;"><div style="height:100px;"></div></div>'); $('body').append(div); var w1 = $('div', div)["inner"+((x_box_right=="y")?"Width":"Height")](); div.css('overflow-'+(x_box_right||"y"), 'scroll'); var w2 = $('div', div)["inner"+((x_box_right=="y")?"Width":"Height")](); $(div).remove(); return (w1 - w2); } /*Funkcje do obsługi pasków przewijania*/ Common.ScrollBarOverflow=function(){ $('*.mw-overflow-x, *.mw-overflow-y').each(function(i,element_g){ /*start overflow*/ var comp=window.getComputedStyle(element_g, null); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var overflow=comp.getPropertyValue("overflow"); var overflow_x=$(element_g).hasClass('mw-overflow-x'); if(overflow_x){ var overflowX=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); if((overflowX)&&(overflowX=="auto")){ element_g.classList.remove("mw-scrollbar-overflow-x"); const hasHorizontalScrollbar = element_g.scrollWidth > element_g.clientWidth; // true lub false if(hasHorizontalScrollbar){ element_g.classList.add("mw-scrollbar-overflow-x"); } } } var overflow_y=$(element_g).hasClass('mw-overflow-y'); if(overflow_y){ var overflowY=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflowY)&&(overflowY=="auto")){ element_g.classList.remove("mw-scrollbar-overflow-y"); const hasVerticalScrollbar = element_g.scrollHeight > element_g.clientHeight; // true lub false if(hasVerticalScrollbar){ element_g.classList.add("mw-scrollbar-overflow-y"); } } } /*koniec overflow*/ }); } $(function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); $(window).on('scroll', function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); $(window).on('resize', function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); /*Funkcja symulująca właściwości position:sticky, wszędzie tam, gdzie nie można go użyć.*/ function StickyXY(){} Common.StickyXY=function(){ $('*.mw-sticky-x, *.mw-sticky-y').each(function(i,element_g){ var comp=window.getComputedStyle(element_g, null); function FunStickyXY(height,top,bottom,width_box,left_box,right_box,x_box,x_box_right){ var pozycje_paskow=new Array(); $(element_g).find('*').each(function(i,element){ var comp=window.getComputedStyle(element, null); var overflow=comp.getPropertyValue("overflow"); var overflow_x=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); var overflow_y=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflow_x=="auto")||(overflow_x=="scroll")||(overflow_y=="auto")||(overflow_y=="scroll")){ pozycje_paskow.push(new Array(element,element.scrollTop,element.scrollLeft)); } }); var height_sticky=0; $('html.client-js.vector-sticky-header-enabled body.skin-vector-search-vue.vector-sticky-header-visible header.vector-sticky-header').each(function(i,el){ var rect_sticky=el.getBoundingClientRect(); height_sticky=parseInt(rect_sticky[height]); }); var StickyXYTopOld=$(element_g).data('stickyXYOld-'+top);var StickyXYBottomOld=$(element_g).data('stickyXYOld-'+bottom); if(StickyXYTopOld===undefined){ var topold_war=parseFloat(element_g.style[top]); $(element_g).data('stickyXYOld-'+top,((!isNaN(topold_war))?topold_war:0)); } if(StickyXYBottomOld===undefined){ var bottomold_war=parseFloat(element_g.style[bottom]); $(element_g).data('stickyXYOld-'+bottom,((!isNaN(bottomold_war))?bottomold_war:0)); } var topold=$(element_g).data('stickyXYOld-'+top)+height_sticky+5; var margintop=parseFloat(comp.getPropertyValue("margin-"+top)); margintop=((!isNaN(margintop))?margintop:0); var marginbottom=parseFloat(comp.getPropertyValue("margin-"+bottom)); marginbottom=((!isNaN(marginbottom))?marginbottom:0); var przodek_height=undefined; element_g.style[height]="auto"; element_g.style["max"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[top]="auto"; element_g.style[bottom]="auto"; if(width_box!=null){ element_g.style[width_box]="auto"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[left_box]="auto"; element_g.style[right_box]="0"; $(element_g).find('.mw-not-overflow-'+x_box+'.mw-overflow-'+x_box).each(function(i,element){ element.style[width_box]="auto"; }); } var parents_node_fun=$(element_g).parents('.mw-parent-node').first(); if((parents_node_fun==null)||(parents_node_fun.length==0)){return;} var width_rodzic=null; var rodzic_element=undefined; var comp_rodz; parents_node_fun.each(function(i,element){ comp_rodz=window.getComputedStyle(element,null); przodek_height=parseFloat(comp_rodz.getPropertyValue([height])); width_rodzic=width_box?parseFloat(comp_rodz.getPropertyValue([width_box])):null; rodzic_element=element; }); var height_box_real=parseFloat(comp.getPropertyValue(height)); var rect_dziecko=element_g.getBoundingClientRect(); var wys=document.documentElement["client"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]; var rect_rodzic; parents_node_fun.each(function(i,element){ rect_rodzic=element.getBoundingClientRect(); }); var top_ab=rect_rodzic[top]-margintop; var bottom_ab=(wys-rect_rodzic[bottom])-marginbottom; element_g.style["max"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=((Math.min(przodek_height,wys-((rect_rodzic[top]>=0)?(rect_rodzic[top]):(0))-((bottom_ab>=0)?(bottom_ab):(0)))-(((top_ab<=0)?(topold):(Math.max(0,topold-top_ab)))+((bottom_ab<=0)?($(element_g).data('stickyXYOld-'+bottom)+5):(Math.max(0,$(element_g).data('stickyXYOld-'+bottom)+5-bottom_ab)))+marginbottom+margintop))*(height_box_real/rect_dziecko[height]))+"px"; element_g.style[height]=(element_g["offset"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))])+"px"; var top_obj=(((top_ab>=0)?0:(-top_ab)))+((top_ab<=0)?(topold):(Math.max(0,topold-top_ab))); element_g.style[top]=top_obj+"px"; element_g.style[bottom]="auto"; if(width_box!=null){ element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; rodzic_element.style.position="static"; rodzic_element.style.overflow="hidden"; var width_box_real=parseFloat(comp.getPropertyValue(width_box)); var rect_dziecko=element_g.getBoundingClientRect(); if(parseInt(width_box_real)>parseInt(rect_dziecko[width_box])){ if(width_box=="width"){ element_g.classList.remove('mw-scrollbar-overflow-x'); }else{ element_g.classList.remove('mw-scrollbar-overflow-y'); } if(rect_dziecko[width_box]>width_rodzic){ if(width_box=="width"){ element_g.classList.add('mw-scrollbar-overflow-x'); }else{ element_g.classList.add('mw-scrollbar-overflow-y'); } } var width_box_real=parseFloat(comp.getPropertyValue(width_box)); var margin_all=parseFloat(comp.getPropertyValue("margin-"+left_box))+parseFloat(comp.getPropertyValue("margin-"+right_box)); margin_all+=parseFloat(comp_rodz.getPropertyValue("padding-"+left_box))+parseFloat(comp_rodz.getPropertyValue("padding-"+right_box)); var dlugosc=(width_rodzic-margin_all); dlugosc=((dlugosc>=0)?dlugosc:0); element_g.style.whiteSpace="nowrap"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width_box]))+"px"; element_g.style[width_box]=width_box_real+"px"; Common.ScrollBarOverflow(); $(element_g).find('.mw-overflow-'+x_box+'.mw-not-overflow-'+x_box+'.mw-scrollbar-overflow-'+x_box).each(function(i,element){ var comp_element=window.getComputedStyle(element, null) element.style[width_box]=(element["scroll"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]+Common.PobierzSzerokoscPaskaPrzewijania(x_box_right)+parseFloat(comp_element.getPropertyValue('padding-'+left_box))+parseFloat(comp_element.getPropertyValue('padding-'+right_box)))+"px"; element.classList.remove('mw-scrollbar-overflow-'+x_box_right); }); element_g.style.whiteSpace="normal"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[width_box]="auto"; var rect_dziecko=element_g.getBoundingClientRect(); var width_box_real=parseFloat(comp.getPropertyValue(width_box)); element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width_box]))+"px"; element_g.style[width_box]=width_box_real+"px"; element_g.style[left_box]="0"; element_g.style[right_box]="auto"; rodzic_element.style.position="relative"; }else{ element_g.style.whiteSpace="nowrap"; var szerokosc_box=rect_dziecko[width_box]; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(szerokosc_box)+"px"; element_g.style[width_box]=(szerokosc_box)+"px"; Common.ScrollBarOverflow(); $(element_g).find('.mw-overflow-'+x_box+'.mw-not-overflow-'+x_box+'.mw-scrollbar-overflow-'+x_box).each(function(i,element){ var comp_element=window.getComputedStyle(element, null); element.style[width_box]=(element["scroll"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]+Common.PobierzSzerokoscPaskaPrzewijania(x_box_right)+parseFloat(comp_element.getPropertyValue('padding-'+left_box))+parseFloat(comp_element.getPropertyValue('padding-'+right_box)))+"px"; element.classList.remove('mw-scrollbar-overflow-'+x_box_right); }); element_g.style.whiteSpace="normal"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[width_box]="auto"; var rect_dziecko=element_g.getBoundingClientRect(); var szerokosc_box=rect_dziecko[width_box]; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(szerokosc_box)+"px"; element_g.style[width_box]=(szerokosc_box)+"px"; var szerokosc=rect_dziecko[width_box]+parseFloat(comp.getPropertyValue("margin-"+left_box))+parseFloat(comp.getPropertyValue("margin-"+right_box)); if(parseInt(szerokosc)>parseInt(width_rodzic)){ element_g.style[right_box]="0"; element_g.style[left_box]="auto"; rodzic_element.style.overflow="visible"; }else{ element_g.style[left_box]="0"; element_g.style[right_box]="auto"; rodzic_element.style.position="relative"; } } } element_g.style[height]="auto"; element_g.style[height]=(element_g["offset"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))])+"px"; Common.ScrollBarOverflow(); for(var i in pozycje_paskow){ pozycje_paskow[i][0].scrollTop=pozycje_paskow[i][1]; pozycje_paskow[i][0].scrollLeft=pozycje_paskow[i][2]; } } element_g.classList.add('mw-sticky-js'); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var visibility=comp.getPropertyValue("visibility"); if(visibility=="hidden"){return;} var position=comp.getPropertyValue("position"); if(position!="absolute"){return;} var sticky_x=$(element_g).hasClass('mw-sticky-x'); var sticky_y=$(element_g).hasClass('mw-sticky-y'); if((sticky_x)&&(!sticky_y)){ var str=$(element_g).parents('.strona_górna, .strona_dolna').first(); if(str.hasClass('strona_górna')){ FunStickyXY("width","left","right","height","top","bottom","y","x"); }else if(str.hasClass('strona_dolna')){ FunStickyXY("width","left","right","height","bottom","top","x","y"); } }else if((!sticky_x)&&(sticky_y)){ var str=$(element_g).parents('.strona_prawa, .strona_lewa').first(); if(str.hasClass('strona_prawa')){ FunStickyXY("height","top","bottom","width","left","right","x","y"); }else if(str.hasClass('strona_lewa')){ FunStickyXY("height","top","bottom","width","right","left","x","y"); } }else{ FunStickyXY("width","left","right",null); FunStickyXY("height","top","bottom",null); } }); } $(function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); $(window).on('scroll', function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); $(window).on('resize', function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); /*Funkcja do ustawiania maksymalnego rozmiaru dziecka, względem rodzica, przy position:absolute*/ Common.OptimalXY=function(){ $('*.mw-optimal-x, *.mw-optimal-y').each(function(i,element_g){ var comp=window.getComputedStyle(element_g, null); function FunOptimalXY(width,left,right){ var pozycje_paskow=new Array(); $(element_g).find('*').each(function(i,element){ var comp=window.getComputedStyle(element, null); var overflow=comp.getPropertyValue("overflow"); var overflow_x=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); var overflow_y=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflow_x=="auto")||(overflow_x=="scroll")||(overflow_y=="auto")||(overflow_y=="scroll")){ pozycje_paskow.push(new Array(element,element.scrollTop,element.scrollLeft)); } }); var width_rodzic=null; var rodzic_node; var comp_rodz; $(element_g).parents('.mw-parent-node').first().each(function(i,element){ comp_rodz=window.getComputedStyle(element,null); width_rodzic=parseFloat(comp_rodz.getPropertyValue([width])); rodzic_node=element; }); if((width_rodzic!=null)&&(!isNaN(width_rodzic))){ element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; var width_box_real=parseFloat(comp.getPropertyValue(width)); var rect_dziecko=element_g.getBoundingClientRect(); if(width=="width"){ element_g.classList.remove('mw-scrollbar-overflow-x'); }else{ element_g.classList.remove('mw-scrollbar-overflow-y'); } if(parseInt(width_box_real)>parseInt(rect_dziecko[width])){ var rect_dziecko=element_g.getBoundingClientRect(); if(rect_dziecko[width]>width_rodzic){ if(width=="width"){ element_g.classList.add('mw-scrollbar-overflow-x'); }else{ element_g.classList.add('mw-scrollbar-overflow-y'); } } var width_box_real=parseFloat(comp.getPropertyValue(width)); var margin_all=parseFloat(comp.getPropertyValue("margin-"+left))+parseFloat(comp.getPropertyValue("margin-"+right)); margin_all+=parseFloat(comp_rodz.getPropertyValue("padding-"+left))+parseFloat(comp_rodz.getPropertyValue("padding-"+right)); var dlugosc=(width_rodzic-margin_all); dlugosc=((dlugosc>=0)?dlugosc:0); element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width]))+"px"; }else{ element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(rect_dziecko[width])+"px"; } var str=$(element_g).parents('.strona_prawa, .strona_lewa, .strona_górna, .strona_dolna').first(); if(!str.hasClass('strona_start-nawigacja_boksy')){ var rect_dziecko=element_g.getBoundingClientRect(); var szerokosc=rect_dziecko[width]+parseFloat(comp.getPropertyValue("margin-"+left))+parseFloat(comp.getPropertyValue("margin-"+right)); if(parseInt(szerokosc)>parseInt(width_rodzic)){ str.css('position','static'); }else{ str.css('position','relative'); } } } for(var i in pozycje_paskow){ pozycje_paskow[i][0].scrollTop=pozycje_paskow[i][1]; pozycje_paskow[i][0].scrollLeft=pozycje_paskow[i][2]; } }; element_g.classList.add('mw-optimal-js'); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var visibility=comp.getPropertyValue("visibility"); if(visibility=="hidden"){return;} var position=comp.getPropertyValue("position"); if(position!="absolute"){return;} var optimal_x=$(element_g).hasClass('mw-optimal-x'); var optimal_y=$(element_g).hasClass('mw-optimal-y'); if(optimal_x){ FunOptimalXY("width","left","right"); } if(optimal_y){ FunOptimalXY("height","top","bottom"); } }); } $(function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); $(window).on("scroll",function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); $(window).on("resize",function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); /*Uruchamianie dodatkowych funkcji, niż standardowe, w href w linkach rozwijanej tabeli TABLE lub ramki DIV, jeśli ona generuje zwiększenie rozmiarów, aby w rodzicu pojawił się pasek przewijania, z dodatkowymi opcjami generowanej przez arkusz kalkulacyjny CSS*/ Common.RamkiTableIDiv=function(obiekt,id_tabeli_lub_ramki,id_nazwa_a,fun_obiektu){ $(obiekt).each(function(i,element_f){ return new Promise(function(resolve,reject){ var czas=0; function Czekaj(){ if(czas>30000){ reject(); } var collapsebutton=$(element_f).find('a#'+id_nazwa_a+i); if((collapsebutton!==null)&&(collapsebutton.length>0)){ var tabele_lub_ramki=collapsebutton.parents('#'+id_tabeli_lub_ramki+i); if((tabele_lub_ramki===null)||(tabele_lub_ramki.length==0)){reject();} resolve(i); }else{ czas+=100; setTimeout(Czekaj,100); } } Czekaj(); }).then(function(i){ $('*.mw-overflow-x a#'+id_nazwa_a+i+', *.mw-overflow-y a#'+id_nazwa_a+i).each(function(j,element_g){ var href=element_g.getAttribute('href'); if((href!=null)&&(href!="")){ var col="[\\s;\\(\\,]*javascript:"+fun_obiektu.replace(/\./g,"\\.")+"\\s*\\(\\s*"+i+"\\s*\\)[\\s;\\)\\,]*"; var re_frame = new RegExp(col,'g'); var re_javascript=new RegExp("^[\\s;]*javascript:"); if((re_javascript.test(href))&&(re_frame.test(href))){ element_g.setAttribute('href',href.replace(/[;\s]*$/g,"")+';javascript:Common.ScrollBarOverflow();javascript:Common.StickyXY();javascript:Common.OptimalXY()') } } }); }).catch(function(){}); }); }; /*Dla menu rozwijanego tabeli TABLE zdefiniowanej na stronie MediaWiki:Common.js*/ Common.RamkiTableIDiv("table.collapsible",'collapsibleTable','collapseButton','Common.collapseTable'); /*Dla menu rozwijanej ramki DIV zdefiniowanej na stronie MediaWiki:Common.js*/ Common.RamkiTableIDiv("div.NavFrame",'NavFrame','NavToggle','Common.toggleNavigationBar'); /*Koniec dodatkowych funkcji*/ /*Uruchamianie dodatkowych zdarzeń do Common.StickyXY i OptimalXY*/ Common.ZdarzeniaDodatkoweFunkcyjneXY=function(css,fun_zdarz){ var fun_css=$(css); fun_css.on('mouseenter',fun_zdarz); fun_css.on('mouseleave',fun_zdarz); fun_css.on('transitionstart',fun_zdarz); fun_css.on('webkittransitionstart',fun_zdarz); fun_css.on('moztransitionstart',fun_zdarz); fun_css.on('otransitionstart',fun_zdarz); fun_css.on('transitionrun',fun_zdarz); fun_css.on('webkittransitionrun',fun_zdarz); fun_css.on('moztransitionrun',fun_zdarz); fun_css.on('otransitionrun',fun_zdarz); fun_css.on('transitioncancel',fun_zdarz); fun_css.on('webkittransitioncancel',fun_zdarz); fun_css.on('moztransitioncancel',fun_zdarz); fun_css.on('otransitioncancel',fun_zdarz); fun_css.on('transitionend',fun_zdarz); fun_css.on('webkittransitionend',fun_zdarz); fun_css.on('moztransitionend',fun_zdarz); fun_css.on('otransitionend',fun_zdarz); }; Common.ZdarzeniaDodatkoweFunkcyjneXY("*.mw-sticky-x, *.mw-sticky-y",Common.StickyXY); Common.ZdarzeniaDodatkoweFunkcyjneXY('*.mw-optimal-x, *.mw-optimal-y',Common.OptimalXY); /*Koniec dodatkowych zdarzeń*/ /*Program do obsługi szablonu StronaStart i jego pokrewnych książkowych*/ Common.StronaStart=function(){ var elements=$('.strona_start .strona .ciało_zawartości > .menu > .menu_boks'); elements.parent().show(); $('.strona_start').find('.strona_lewa .nawigacja_boksy, .strona_prawa .nawigacja_boksy').each(function(i,element){ $(element).css('visibility',"hidden"); }); $('.strona_start').find('.strona_lewa .nawigacja_spis, .strona_prawa .nawigacja_spis').each(function(i,element){ var czy_visible=$(element).css('visibility'); $(element).css('visibility',"visible"); var str=$(element).parents('.strona_prawa, .strona_lewa').first(); str.css('position','relative'); str.addClass('strona_start-nawigacja_spis'); str.removeClass('strona_start-nawigacja_boksy'); if(czy_visible=="hidden"){ $(Common.ScrollBarOverflow); $(Common.StickyXY); } }); function StronaStartFun(){ var id=this; $(id).parents('.strona_start').first().find('.strona .ciało_zawartości > .menu > .menu_boks').children().each(function(i,element){ var display=$(element).css('display'); if(display=="none"){ $(element).css('display',"block"); }else{ $(element).css('display',"none"); } }); $(id).parents('.strona_start').first().find('.strona_lewa, .strona_prawa').children().each(function(i,element){ var visibility=window.getComputedStyle(element, null).getPropertyValue('visibility'); if(visibility=="hidden"){ $(element).css('visibility',"visible"); var str=$(element).parents('.strona_prawa, .strona_lewa').first(); if($(element).hasClass('nawigacja_boksy')){ str.css('position','static'); str.addClass('strona_start-nawigacja_boksy'); str.removeClass('strona_start-nawigacja_spis'); $(Common.ScrollBarOverflow); $(Common.OptimalXY); }else if($(element).hasClass('nawigacja_spis')){ str.css('position','relative'); str.addClass('strona_start-nawigacja_spis'); str.removeClass('strona_start-nawigacja_boksy'); $(Common.ScrollBarOverflow); $(Common.StickyXY); } }else{ $(element).css('visibility',"hidden"); } }); } elements.on('click',StronaStartFun); } $(Common.StronaStart); ehw4154e2m73bayttokhemfb2p3s579 437159 437158 2022-08-07T18:01:57Z Persino 2851 javascript text/javascript mw.loader.load( '//pl.wikibooks.org/w/index.php?action=raw&ctype=text/javascript&title=Wikipedysta:Persino/Gadget-StronicowyParser.js', 'text/javascript', true ); /**/ /* Umieszczony tutaj kod JavaScript zostanie załadowany przez każdego użytkownika, podczas każdego ładowania strony. */ // Frame Busting if (top != self) top.location.href = self.location.href; /* * Zmienna Common.pageInfo, jego elementy, instrukcja obsługi: * Common.pageInfo.namespace numer przestrzeni nazw (równe wgNamespaceNumber) * Common.pageInfo.name pełna nazwa strony * Common.pageInfo.title tytuł strony, czyli ostatnia część po '/' albo jest równe pageInfo.name, gdy nigdzie nie występuje slash * Common.pageInfo.book tytuł książki * Common.pageInfo.action akcja taka jaka jest w adresie URL pod "action=", w przypadku normalnego czytania strony, action jest równe "get" * Common.pageInfo.diff null w przypadku, gdy nie porównujemy wersji, w przeciwnym wypadku wartość występującą w adresie URL */ /*Przestrzeń nazw: Common, zdefiniowanym za pomocą tablicy*/ var Common=new Array(); /*Funkcje w przestrzeni nazw Common*/ Common.Naglowek=function(){ /* Skrypt odpowiedzialny za wyświetlanie szablonu Nagłówek [[Szablon:Nagłówek]] */ var hideAll = document.getElementById('mójNagłówekUkryj'); var noFooter = false; var footers = 0; var tags = document.getElementsByTagName('div'); for (var i = 0; i < tags.length; i++) { var el=tags[i].getAttribute("id"); if (el=='mojaStopka') footers++; else if (hideAll && (el=='mójNagłówek')) { tags[i].innerHTML=""; noFooter=true; } } if (noFooter) return; var footer = document.getElementById('mojaStopka'); if ((footer !== null) && (footers==1)) { var bodyContent = document.getElementById('bodyContent'); if (bodyContent !== null) { var s0=document.getElementById('mojaStopka0'); var s1=document.getElementById('mojaStopka1'); if ((s1 !== null) || ((s0 === null) && (bodyContent.innerHTML.length>8000))){ var strona=document.getElementById('strona'); if(strona!==null){ strona.appendChild(footer); }else{ var catlinks=document.getElementById('catlinks'); if(catlinks !== null){ bodyContent.insertBefore(footer,catlinks); }else{ bodyContent.appendChild(footer); } } } } } /* Koniec skryptu odpowiedzialnego za wyświetlanie szablonu Nagłówek [[Szablon:Nagłówek]] */ }; $(Common.Naglowek); /*Informacje o danej stronie*/ Common.PageInfoInit=function(){ var _g = /_/g; this.name = mw.config.get('wgPageName').replace(/_/g, ' '); this.namespace = mw.config.get('wgNamespaceNumber'); var i = this.name.search(/\/[^\/]*$/g); this.title = this.name.slice(i + 1); this.book = this.name.replace(/\/.*/g, ""); if ( document.URL.search("//pl.wikibooks.org/w/index.php") != -1 ) { re = /\&diff=/g; this.diff = re.test(document.URL); re = /\&action=[^\&]*/g; this.action = document.URL.match(re); if ( this.action === null ) { this.action = 'get'; } else { this.action = this.action[0].slice(8, this.action[0].length); } } else { this.diff = null; this.action = 'get'; } } Common.pageInfo = new Common.PageInfoInit(); /** Collapsible tables ********************************************************* * * Description: Allows tables to be collapsed, showing only the header. See * [[en:Wikipedia:NavFrame]]. * Maintainers: [[User:R. Koot]] */ Common.autoCollapse = 2; Common.collapseCaption = "ukryj"; Common.expandCaption = "pokaż"; Common.collapseTable=function( tableIndex ) { var Button = document.getElementById( "collapseButton" + tableIndex ); var Table = document.getElementById( "collapsibleTable" + tableIndex ); if ( !Table || !Button ) { return false; } var Rows = Table.rows; if ( Button.firstChild.data == Common.collapseCaption ) { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = "none"; } Button.firstChild.data = Common.expandCaption; } else { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = Rows[0].style.display; } Button.firstChild.data = Common.collapseCaption; } } Common.createCollapseButtons=function() { var tableIndex = 0; var NavigationBoxes = new Object(); var Tables = document.getElementsByTagName( "table" ); for ( var i = 0; i < Tables.length; i++ ) { if ( $(Tables[i]).hasClass( "collapsible" ) ) { /* only add button and increment count if there is a header row to work with */ var HeaderRow = Tables[i].getElementsByTagName( "tr" )[0]; if (!HeaderRow) continue; var Header = HeaderRow.getElementsByTagName( "th" )[0]; if (!Header) continue; NavigationBoxes[ tableIndex ] = Tables[i]; Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex ); var Button = document.createElement( "span" ); var ButtonLink = document.createElement( "a" ); var ButtonText = document.createTextNode( Common.collapseCaption ); Button.style.styleFloat = "right"; Button.style.cssFloat = "right"; Button.style.fontWeight = "normal"; Button.style.textAlign = "right"; Button.style.width = "6em"; ButtonLink.style.color = Header.style.color; ButtonLink.setAttribute( "id", "collapseButton" + tableIndex ); ButtonLink.setAttribute( "href", "javascript:Common.collapseTable(" + tableIndex + ");" ); ButtonLink.appendChild( ButtonText ); Button.appendChild( document.createTextNode( "[" ) ); Button.appendChild( ButtonLink ); Button.appendChild( document.createTextNode( "]" ) ); $(Header.childNodes[0]).has('a#collapseButton' + tableIndex).each(function(i,element){ $(element).remove(); }); Header.insertBefore( Button, Header.childNodes[0]); tableIndex++; } } for ( var i = 0; i < tableIndex; i++ ) { if ( $(NavigationBoxes[i]).hasClass( "collapsed" ) || ( tableIndex >= Common.autoCollapse && $(NavigationBoxes[i]).hasClass( "Common.autoCollapse" ) ) ) { collapseTable( i ); } else if ( $(NavigationBoxes[i]).hasClass( "innercollapse" ) ) { var element = NavigationBoxes[i]; while (element = element.parentNode) { if ( $(element).hasClass( "outercollapse" ) ) { collapseTable ( i ); break; } } } } } $(Common.createCollapseButtons ); /** Dynamic Navigation Bars (experimental) ************************************* * * Description: See [[Wikipedia:NavFrame]]. * Maintainers: UNMAINTAINED */ // set up the words in your language Common.NavigationBarHide = '[' + Common.collapseCaption + ']'; Common.NavigationBarShow = '[' + Common.expandCaption + ']'; // shows and hides content and picture (if available) of navigation bars // Parameters: // indexNavigationBar: the index of navigation bar to be toggled Common.toggleNavigationBar=function(indexNavigationBar) { var NavToggle = document.getElementById("NavToggle" + indexNavigationBar); var NavFrame = document.getElementById("NavFrame" + indexNavigationBar); if (!NavFrame || !NavToggle) { return false; } // if shown now if (NavToggle.firstChild.data == Common.NavigationBarHide) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) ) { NavChild.style.display = 'none'; } if ( $(NavChild).hasClass( 'NavContent') ) { NavChild.style.display = 'none'; } } NavToggle.firstChild.data = Common.NavigationBarShow; // if hidden now } else if (NavToggle.firstChild.data == Common.NavigationBarShow) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ($(NavChild).hasClass( 'NavPic')) { NavChild.style.display = 'block'; } if ($(NavChild).hasClass( 'NavContent')) { NavChild.style.display = 'block'; } } NavToggle.firstChild.data = Common.NavigationBarHide; } } // adds show/hide-button to navigation bars Common.createNavigationBarToggleButton=function() { var indexNavigationBar = 0; // iterate over all < div >-elements var divs = document.getElementsByTagName("div"); for (var i = 0; NavFrame = divs[i]; i++) { // if found a navigation bar if ($(NavFrame).hasClass( "NavFrame")) { indexNavigationBar++; var NavToggle = document.createElement("a"); NavToggle.className = 'NavToggle'; NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar); NavToggle.setAttribute('href', 'javascript:Common.toggleNavigationBar(' + indexNavigationBar + ');'); var isCollapsed = $(NavFrame).hasClass( "collapsed" ); /* * Check if any children are already hidden. This loop is here for backwards compatibility: * the old way of making NavFrames start out collapsed was to manually add style="display:none" * to all the NavPic/NavContent elements. Since this was bad for accessibility (no way to make * the content visible without JavaScript support), the new recommended way is to add the class * "collapsed" to the NavFrame itself, just like with collapsible tables. */ for (var NavChild = NavFrame.firstChild; NavChild != null && !isCollapsed; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) || $(NavChild).hasClass( 'NavContent' ) ) { if ( NavChild.style.display == 'none' ) { isCollapsed = true; } } } if (isCollapsed) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) || $(NavChild).hasClass( 'NavContent' ) ) { NavChild.style.display = 'none'; } } } var NavToggleText = document.createTextNode(isCollapsed ? Common.NavigationBarShow : Common.NavigationBarHide); NavToggle.appendChild(NavToggleText); // Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked) for(var j=0; j < NavFrame.childNodes.length; j++) { if ($(NavFrame.childNodes[j]).hasClass( "NavHead")) { $(NavFrame.childNodes[j]).children('a.NavToggle#NavToggle' + indexNavigationBar).each(function(i,element){ $(element).remove(); }); NavFrame.childNodes[j].appendChild(NavToggle); } } NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar); } } } $(Common.createNavigationBarToggleButton ); // Wyszukiwanie Google na stronach podręczników Common.googleSearchInitialized = false; Common.insertGoogleSearch=function() { if ( mw.config.get('wgNamespaceNumber') != 0 || Common.googleSearchInitialized ) { return; } Common.googleSearchInitialized = true; var google = "http://www.google.com/custom?sa=Google+Search&domains=pl.wikibooks.org/wiki/PAGE&sitesearch=pl.wikibooks.org/wiki/PAGE"; var ul = jQuery('#p-tb ul')[0]; if (!ul) { return; } var link = document.createElement('a'); var book = Common.pageInfo.book; if ( book.length == 1 || book.indexOf('++') != -1 || encodeURIComponent(book) != book ) { google = "http://www.google.com/custom?sa=Google+Search&domains=pl.wikibooks.org/wiki/&sitesearch=pl.wikibooks.org/wiki/&q=%22PAGE%22" } link.href = google.replace(/PAGE/g, encodeURIComponent(book)); link.appendChild(document.createTextNode("Szukaj w podręczniku")); var li = document.createElement('li'); li.id = "google-trick-search"; li.appendChild(link); $(ul).children('li#google-trick-search').each(function(i,element){ $(element).remove(); }); ul.insertBefore(li, ul.firstChild); } $(Common.insertGoogleSearch); /*Funkcja do liczenia, czy nastąpiło przepełnienie poziome lub pionowe*/ Common.PobierzSzerokoscPaskaPrzewijania=function(x_box_right){ var div = $('<div style="width:50px;height:50px;overflow:hidden;position:absolute;top:-200px;left:-200px;"><div style="height:100px;"></div></div>'); $('body').append(div); var w1 = $('div', div)["inner"+((x_box_right=="y")?"Width":"Height")](); div.css('overflow-'+(x_box_right||"y"), 'scroll'); var w2 = $('div', div)["inner"+((x_box_right=="y")?"Width":"Height")](); $(div).remove(); return (w1 - w2); } /*Funkcje do obsługi pasków przewijania*/ Common.ScrollBarOverflow=function(){ $('*.mw-overflow-x, *.mw-overflow-y').each(function(i,element_g){ /*start overflow*/ var comp=window.getComputedStyle(element_g, null); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var overflow=comp.getPropertyValue("overflow"); var overflow_x=$(element_g).hasClass('mw-overflow-x'); if(overflow_x){ var overflowX=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); if((overflowX)&&(overflowX=="auto")){ element_g.classList.remove("mw-scrollbar-overflow-x"); const hasHorizontalScrollbar = element_g.scrollWidth > element_g.clientWidth; // true lub false if(hasHorizontalScrollbar){ element_g.classList.add("mw-scrollbar-overflow-x"); } } } var overflow_y=$(element_g).hasClass('mw-overflow-y'); if(overflow_y){ var overflowY=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflowY)&&(overflowY=="auto")){ element_g.classList.remove("mw-scrollbar-overflow-y"); const hasVerticalScrollbar = element_g.scrollHeight > element_g.clientHeight; // true lub false if(hasVerticalScrollbar){ element_g.classList.add("mw-scrollbar-overflow-y"); } } } /*koniec overflow*/ }); } $(function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); $(window).on('scroll', function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); $(window).on('resize', function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); /*Funkcja symulująca właściwości position:sticky, wszędzie tam, gdzie nie można go użyć.*/ Common.StickyXY=function(){ $('*.mw-sticky-x, *.mw-sticky-y').each(function(i,element_g){ var comp=window.getComputedStyle(element_g, null); function FunStickyXY(height,top,bottom,width_box,left_box,right_box,x_box,x_box_right){ var pozycje_paskow=new Array(); $(element_g).find('*').each(function(i,element){ var comp=window.getComputedStyle(element, null); var overflow=comp.getPropertyValue("overflow"); var overflow_x=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); var overflow_y=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflow_x=="auto")||(overflow_x=="scroll")||(overflow_y=="auto")||(overflow_y=="scroll")){ pozycje_paskow.push(new Array(element,element.scrollTop,element.scrollLeft)); } }); var height_sticky=0; $('html.client-js.vector-sticky-header-enabled body.skin-vector-search-vue.vector-sticky-header-visible header.vector-sticky-header').each(function(i,el){ var rect_sticky=el.getBoundingClientRect(); height_sticky=parseInt(rect_sticky[height]); }); var StickyXYTopOld=$(element_g).data('stickyXYOld-'+top);var StickyXYBottomOld=$(element_g).data('stickyXYOld-'+bottom); if(StickyXYTopOld===undefined){ var topold_war=parseFloat(element_g.style[top]); $(element_g).data('stickyXYOld-'+top,((!isNaN(topold_war))?topold_war:0)); } if(StickyXYBottomOld===undefined){ var bottomold_war=parseFloat(element_g.style[bottom]); $(element_g).data('stickyXYOld-'+bottom,((!isNaN(bottomold_war))?bottomold_war:0)); } var topold=$(element_g).data('stickyXYOld-'+top)+height_sticky+5; var margintop=parseFloat(comp.getPropertyValue("margin-"+top)); margintop=((!isNaN(margintop))?margintop:0); var marginbottom=parseFloat(comp.getPropertyValue("margin-"+bottom)); marginbottom=((!isNaN(marginbottom))?marginbottom:0); var przodek_height=undefined; element_g.style[height]="auto"; element_g.style["max"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[top]="auto"; element_g.style[bottom]="auto"; if(width_box!=null){ element_g.style[width_box]="auto"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[left_box]="auto"; element_g.style[right_box]="0"; $(element_g).find('.mw-not-overflow-'+x_box+'.mw-overflow-'+x_box).each(function(i,element){ element.style[width_box]="auto"; }); } var parents_node_fun=$(element_g).parents('.mw-parent-node').first(); if((parents_node_fun==null)||(parents_node_fun.length==0)){return;} var width_rodzic=null; var rodzic_element=undefined; var comp_rodz; parents_node_fun.each(function(i,element){ comp_rodz=window.getComputedStyle(element,null); przodek_height=parseFloat(comp_rodz.getPropertyValue([height])); width_rodzic=width_box?parseFloat(comp_rodz.getPropertyValue([width_box])):null; rodzic_element=element; }); var height_box_real=parseFloat(comp.getPropertyValue(height)); var rect_dziecko=element_g.getBoundingClientRect(); var wys=document.documentElement["client"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]; var rect_rodzic; parents_node_fun.each(function(i,element){ rect_rodzic=element.getBoundingClientRect(); }); var top_ab=rect_rodzic[top]-margintop; var bottom_ab=(wys-rect_rodzic[bottom])-marginbottom; element_g.style["max"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=((Math.min(przodek_height,wys-((rect_rodzic[top]>=0)?(rect_rodzic[top]):(0))-((bottom_ab>=0)?(bottom_ab):(0)))-(((top_ab<=0)?(topold):(Math.max(0,topold-top_ab)))+((bottom_ab<=0)?($(element_g).data('stickyXYOld-'+bottom)+5):(Math.max(0,$(element_g).data('stickyXYOld-'+bottom)+5-bottom_ab)))+marginbottom+margintop))*(height_box_real/rect_dziecko[height]))+"px"; element_g.style[height]=(element_g["offset"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))])+"px"; var top_obj=(((top_ab>=0)?0:(-top_ab)))+((top_ab<=0)?(topold):(Math.max(0,topold-top_ab))); element_g.style[top]=top_obj+"px"; element_g.style[bottom]="auto"; if(width_box!=null){ element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; rodzic_element.style.position="static"; rodzic_element.style.overflow="hidden"; var width_box_real=parseFloat(comp.getPropertyValue(width_box)); var rect_dziecko=element_g.getBoundingClientRect(); if(parseInt(width_box_real)>parseInt(rect_dziecko[width_box])){ if(width_box=="width"){ element_g.classList.remove('mw-scrollbar-overflow-x'); }else{ element_g.classList.remove('mw-scrollbar-overflow-y'); } if(rect_dziecko[width_box]>width_rodzic){ if(width_box=="width"){ element_g.classList.add('mw-scrollbar-overflow-x'); }else{ element_g.classList.add('mw-scrollbar-overflow-y'); } } var width_box_real=parseFloat(comp.getPropertyValue(width_box)); var margin_all=parseFloat(comp.getPropertyValue("margin-"+left_box))+parseFloat(comp.getPropertyValue("margin-"+right_box)); margin_all+=parseFloat(comp_rodz.getPropertyValue("padding-"+left_box))+parseFloat(comp_rodz.getPropertyValue("padding-"+right_box)); var dlugosc=(width_rodzic-margin_all); dlugosc=((dlugosc>=0)?dlugosc:0); element_g.style.whiteSpace="nowrap"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width_box]))+"px"; element_g.style[width_box]=width_box_real+"px"; Common.ScrollBarOverflow(); $(element_g).find('.mw-overflow-'+x_box+'.mw-not-overflow-'+x_box+'.mw-scrollbar-overflow-'+x_box).each(function(i,element){ var comp_element=window.getComputedStyle(element, null) element.style[width_box]=(element["scroll"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]+Common.PobierzSzerokoscPaskaPrzewijania(x_box_right)+parseFloat(comp_element.getPropertyValue('padding-'+left_box))+parseFloat(comp_element.getPropertyValue('padding-'+right_box)))+"px"; element.classList.remove('mw-scrollbar-overflow-'+x_box_right); }); element_g.style.whiteSpace="normal"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[width_box]="auto"; var rect_dziecko=element_g.getBoundingClientRect(); var width_box_real=parseFloat(comp.getPropertyValue(width_box)); element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width_box]))+"px"; element_g.style[width_box]=width_box_real+"px"; element_g.style[left_box]="0"; element_g.style[right_box]="auto"; rodzic_element.style.position="relative"; }else{ element_g.style.whiteSpace="nowrap"; var szerokosc_box=rect_dziecko[width_box]; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(szerokosc_box)+"px"; element_g.style[width_box]=(szerokosc_box)+"px"; Common.ScrollBarOverflow(); $(element_g).find('.mw-overflow-'+x_box+'.mw-not-overflow-'+x_box+'.mw-scrollbar-overflow-'+x_box).each(function(i,element){ var comp_element=window.getComputedStyle(element, null); element.style[width_box]=(element["scroll"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]+Common.PobierzSzerokoscPaskaPrzewijania(x_box_right)+parseFloat(comp_element.getPropertyValue('padding-'+left_box))+parseFloat(comp_element.getPropertyValue('padding-'+right_box)))+"px"; element.classList.remove('mw-scrollbar-overflow-'+x_box_right); }); element_g.style.whiteSpace="normal"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[width_box]="auto"; var rect_dziecko=element_g.getBoundingClientRect(); var szerokosc_box=rect_dziecko[width_box]; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(szerokosc_box)+"px"; element_g.style[width_box]=(szerokosc_box)+"px"; var szerokosc=rect_dziecko[width_box]+parseFloat(comp.getPropertyValue("margin-"+left_box))+parseFloat(comp.getPropertyValue("margin-"+right_box)); if(parseInt(szerokosc)>parseInt(width_rodzic)){ element_g.style[right_box]="0"; element_g.style[left_box]="auto"; rodzic_element.style.overflow="visible"; }else{ element_g.style[left_box]="0"; element_g.style[right_box]="auto"; rodzic_element.style.position="relative"; } } } element_g.style[height]="auto"; element_g.style[height]=(element_g["offset"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))])+"px"; Common.ScrollBarOverflow(); for(var i in pozycje_paskow){ pozycje_paskow[i][0].scrollTop=pozycje_paskow[i][1]; pozycje_paskow[i][0].scrollLeft=pozycje_paskow[i][2]; } } element_g.classList.add('mw-sticky-js'); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var visibility=comp.getPropertyValue("visibility"); if(visibility=="hidden"){return;} var position=comp.getPropertyValue("position"); if(position!="absolute"){return;} var sticky_x=$(element_g).hasClass('mw-sticky-x'); var sticky_y=$(element_g).hasClass('mw-sticky-y'); if((sticky_x)&&(!sticky_y)){ var str=$(element_g).parents('.strona_górna, .strona_dolna').first(); if(str.hasClass('strona_górna')){ FunStickyXY("width","left","right","height","top","bottom","y","x"); }else if(str.hasClass('strona_dolna')){ FunStickyXY("width","left","right","height","bottom","top","x","y"); } }else if((!sticky_x)&&(sticky_y)){ var str=$(element_g).parents('.strona_prawa, .strona_lewa').first(); if(str.hasClass('strona_prawa')){ FunStickyXY("height","top","bottom","width","left","right","x","y"); }else if(str.hasClass('strona_lewa')){ FunStickyXY("height","top","bottom","width","right","left","x","y"); } }else{ FunStickyXY("width","left","right",null); FunStickyXY("height","top","bottom",null); } }); } $(function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); $(window).on('scroll', function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); $(window).on('resize', function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); /*Funkcja do ustawiania maksymalnego rozmiaru dziecka, względem rodzica, przy position:absolute*/ Common.OptimalXY=function(){ $('*.mw-optimal-x, *.mw-optimal-y').each(function(i,element_g){ var comp=window.getComputedStyle(element_g, null); function FunOptimalXY(width,left,right){ var pozycje_paskow=new Array(); $(element_g).find('*').each(function(i,element){ var comp=window.getComputedStyle(element, null); var overflow=comp.getPropertyValue("overflow"); var overflow_x=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); var overflow_y=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflow_x=="auto")||(overflow_x=="scroll")||(overflow_y=="auto")||(overflow_y=="scroll")){ pozycje_paskow.push(new Array(element,element.scrollTop,element.scrollLeft)); } }); var width_rodzic=null; var rodzic_node; var comp_rodz; $(element_g).parents('.mw-parent-node').first().each(function(i,element){ comp_rodz=window.getComputedStyle(element,null); width_rodzic=parseFloat(comp_rodz.getPropertyValue([width])); rodzic_node=element; }); if((width_rodzic!=null)&&(!isNaN(width_rodzic))){ element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; var width_box_real=parseFloat(comp.getPropertyValue(width)); var rect_dziecko=element_g.getBoundingClientRect(); if(width=="width"){ element_g.classList.remove('mw-scrollbar-overflow-x'); }else{ element_g.classList.remove('mw-scrollbar-overflow-y'); } if(parseInt(width_box_real)>parseInt(rect_dziecko[width])){ var rect_dziecko=element_g.getBoundingClientRect(); if(rect_dziecko[width]>width_rodzic){ if(width=="width"){ element_g.classList.add('mw-scrollbar-overflow-x'); }else{ element_g.classList.add('mw-scrollbar-overflow-y'); } } var width_box_real=parseFloat(comp.getPropertyValue(width)); var margin_all=parseFloat(comp.getPropertyValue("margin-"+left))+parseFloat(comp.getPropertyValue("margin-"+right)); margin_all+=parseFloat(comp_rodz.getPropertyValue("padding-"+left))+parseFloat(comp_rodz.getPropertyValue("padding-"+right)); var dlugosc=(width_rodzic-margin_all); dlugosc=((dlugosc>=0)?dlugosc:0); element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width]))+"px"; }else{ element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(rect_dziecko[width])+"px"; } var str=$(element_g).parents('.strona_prawa, .strona_lewa, .strona_górna, .strona_dolna').first(); if(!str.hasClass('strona_start-nawigacja_boksy')){ var rect_dziecko=element_g.getBoundingClientRect(); var szerokosc=rect_dziecko[width]+parseFloat(comp.getPropertyValue("margin-"+left))+parseFloat(comp.getPropertyValue("margin-"+right)); if(parseInt(szerokosc)>parseInt(width_rodzic)){ str.css('position','static'); }else{ str.css('position','relative'); } } } for(var i in pozycje_paskow){ pozycje_paskow[i][0].scrollTop=pozycje_paskow[i][1]; pozycje_paskow[i][0].scrollLeft=pozycje_paskow[i][2]; } }; element_g.classList.add('mw-optimal-js'); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var visibility=comp.getPropertyValue("visibility"); if(visibility=="hidden"){return;} var position=comp.getPropertyValue("position"); if(position!="absolute"){return;} var optimal_x=$(element_g).hasClass('mw-optimal-x'); var optimal_y=$(element_g).hasClass('mw-optimal-y'); if(optimal_x){ FunOptimalXY("width","left","right"); } if(optimal_y){ FunOptimalXY("height","top","bottom"); } }); } $(function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); $(window).on("scroll",function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); $(window).on("resize",function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); /*Uruchamianie dodatkowych funkcji, niż standardowe, w href w linkach rozwijanej tabeli TABLE lub ramki DIV, jeśli ona generuje zwiększenie rozmiarów, aby w rodzicu pojawił się pasek przewijania, z dodatkowymi opcjami generowanej przez arkusz kalkulacyjny CSS*/ Common.RamkiTableIDiv=function(obiekt,id_tabeli_lub_ramki,id_nazwa_a,fun_obiektu){ $(obiekt).each(function(i,element_f){ return new Promise(function(resolve,reject){ var czas=0; function Czekaj(){ if(czas>30000){ reject(); } var collapsebutton=$(element_f).find('a#'+id_nazwa_a+i); if((collapsebutton!==null)&&(collapsebutton.length>0)){ var tabele_lub_ramki=collapsebutton.parents('#'+id_tabeli_lub_ramki+i); if((tabele_lub_ramki===null)||(tabele_lub_ramki.length==0)){reject();} resolve(i); }else{ czas+=100; setTimeout(Czekaj,100); } } Czekaj(); }).then(function(i){ $('*.mw-overflow-x a#'+id_nazwa_a+i+', *.mw-overflow-y a#'+id_nazwa_a+i).each(function(j,element_g){ var href=element_g.getAttribute('href'); if((href!=null)&&(href!="")){ var col="[\\s;\\(\\,]*javascript:"+fun_obiektu.replace(/\./g,"\\.")+"\\s*\\(\\s*"+i+"\\s*\\)[\\s;\\)\\,]*"; var re_frame = new RegExp(col,'g'); var re_javascript=new RegExp("^[\\s;]*javascript:"); if((re_javascript.test(href))&&(re_frame.test(href))){ element_g.setAttribute('href',href.replace(/[;\s]*$/g,"")+';javascript:Common.ScrollBarOverflow();javascript:Common.StickyXY();javascript:Common.OptimalXY()') } } }); }).catch(function(){}); }); }; /*Dla menu rozwijanego tabeli TABLE zdefiniowanej na stronie MediaWiki:Common.js*/ Common.RamkiTableIDiv("table.collapsible",'collapsibleTable','collapseButton','Common.collapseTable'); /*Dla menu rozwijanej ramki DIV zdefiniowanej na stronie MediaWiki:Common.js*/ Common.RamkiTableIDiv("div.NavFrame",'NavFrame','NavToggle','Common.toggleNavigationBar'); /*Koniec dodatkowych funkcji*/ /*Uruchamianie dodatkowych zdarzeń do Common.StickyXY i OptimalXY*/ Common.ZdarzeniaDodatkoweFunkcyjneXY=function(css,fun_zdarz){ var fun_css=$(css); fun_css.on('mouseenter',fun_zdarz); fun_css.on('mouseleave',fun_zdarz); fun_css.on('transitionstart',fun_zdarz); fun_css.on('webkittransitionstart',fun_zdarz); fun_css.on('moztransitionstart',fun_zdarz); fun_css.on('otransitionstart',fun_zdarz); fun_css.on('transitionrun',fun_zdarz); fun_css.on('webkittransitionrun',fun_zdarz); fun_css.on('moztransitionrun',fun_zdarz); fun_css.on('otransitionrun',fun_zdarz); fun_css.on('transitioncancel',fun_zdarz); fun_css.on('webkittransitioncancel',fun_zdarz); fun_css.on('moztransitioncancel',fun_zdarz); fun_css.on('otransitioncancel',fun_zdarz); fun_css.on('transitionend',fun_zdarz); fun_css.on('webkittransitionend',fun_zdarz); fun_css.on('moztransitionend',fun_zdarz); fun_css.on('otransitionend',fun_zdarz); }; Common.ZdarzeniaDodatkoweFunkcyjneXY("*.mw-sticky-x, *.mw-sticky-y",Common.StickyXY); Common.ZdarzeniaDodatkoweFunkcyjneXY('*.mw-optimal-x, *.mw-optimal-y',Common.OptimalXY); /*Koniec dodatkowych zdarzeń*/ /*Program do obsługi szablonu StronaStart i jego pokrewnych książkowych*/ Common.StronaStart=function(){ var elements=$('.strona_start .strona .ciało_zawartości > .menu > .menu_boks'); elements.parent().show(); $('.strona_start').find('.strona_lewa .nawigacja_boksy, .strona_prawa .nawigacja_boksy').each(function(i,element){ $(element).css('visibility',"hidden"); }); $('.strona_start').find('.strona_lewa .nawigacja_spis, .strona_prawa .nawigacja_spis').each(function(i,element){ var czy_visible=$(element).css('visibility'); $(element).css('visibility',"visible"); var str=$(element).parents('.strona_prawa, .strona_lewa').first(); str.css('position','relative'); str.addClass('strona_start-nawigacja_spis'); str.removeClass('strona_start-nawigacja_boksy'); if(czy_visible=="hidden"){ $(Common.ScrollBarOverflow); $(Common.StickyXY); } }); function StronaStartFun(){ var id=this; $(id).parents('.strona_start').first().find('.strona .ciało_zawartości > .menu > .menu_boks').children().each(function(i,element){ var display=$(element).css('display'); if(display=="none"){ $(element).css('display',"block"); }else{ $(element).css('display',"none"); } }); $(id).parents('.strona_start').first().find('.strona_lewa, .strona_prawa').children().each(function(i,element){ var visibility=window.getComputedStyle(element, null).getPropertyValue('visibility'); if(visibility=="hidden"){ $(element).css('visibility',"visible"); var str=$(element).parents('.strona_prawa, .strona_lewa').first(); if($(element).hasClass('nawigacja_boksy')){ str.css('position','static'); str.addClass('strona_start-nawigacja_boksy'); str.removeClass('strona_start-nawigacja_spis'); $(Common.ScrollBarOverflow); $(Common.OptimalXY); }else if($(element).hasClass('nawigacja_spis')){ str.css('position','relative'); str.addClass('strona_start-nawigacja_spis'); str.removeClass('strona_start-nawigacja_boksy'); $(Common.ScrollBarOverflow); $(Common.StickyXY); } }else{ $(element).css('visibility',"hidden"); } }); } elements.on('click',StronaStartFun); } $(Common.StronaStart); 4opr5z3lfmthoec36xcdj4zr2p6tw74 437160 437159 2022-08-07T18:04:22Z Persino 2851 javascript text/javascript mw.loader.load( '//pl.wikibooks.org/w/index.php?action=raw&ctype=text/javascript&title=Wikipedysta:Persino/Gadget-StronicowyParser.js', 'text/javascript', true ); /**/ /* Umieszczony tutaj kod JavaScript zostanie załadowany przez każdego użytkownika, podczas każdego ładowania strony. */ // Frame Busting if (top != self) top.location.href = self.location.href; /* * Zmienna Common.pageInfo, jego elementy, instrukcja obsługi: * Common.pageInfo.namespace numer przestrzeni nazw (równe wgNamespaceNumber) * Common.pageInfo.name pełna nazwa strony * Common.pageInfo.title tytuł strony, czyli ostatnia część po '/' albo jest równe pageInfo.name, gdy nigdzie nie występuje slash * Common.pageInfo.book tytuł książki * Common.pageInfo.action akcja taka jaka jest w adresie URL pod "action=", w przypadku normalnego czytania strony, action jest równe "get" * Common.pageInfo.diff null w przypadku, gdy nie porównujemy wersji, w przeciwnym wypadku wartość występującą w adresie URL */ /*Przestrzeń nazw: Common, zdefiniowanym za pomocą tablicy*/ var Common=new Array(); /*Funkcje w przestrzeni nazw Common*/ Common.Naglowek=function(){ /* Skrypt odpowiedzialny za wyświetlanie szablonu Nagłówek [[Szablon:Nagłówek]] */ var hideAll = document.getElementById('mójNagłówekUkryj'); var noFooter = false; var footers = 0; var tags = document.getElementsByTagName('div'); for (var i = 0; i < tags.length; i++) { var el=tags[i].getAttribute("id"); if (el=='mojaStopka') footers++; else if (hideAll && (el=='mójNagłówek')) { tags[i].innerHTML=""; noFooter=true; } } if (noFooter) return; var footer = document.getElementById('mojaStopka'); if ((footer !== null) && (footers==1)) { var bodyContent = document.getElementById('bodyContent'); if (bodyContent !== null) { var s0=document.getElementById('mojaStopka0'); var s1=document.getElementById('mojaStopka1'); if ((s1 !== null) || ((s0 === null) && (bodyContent.innerHTML.length>8000))){ var strona=document.getElementById('strona'); if(strona!==null){ strona.appendChild(footer); }else{ var catlinks=document.getElementById('catlinks'); if(catlinks !== null){ bodyContent.insertBefore(footer,catlinks); }else{ bodyContent.appendChild(footer); } } } } } /* Koniec skryptu odpowiedzialnego za wyświetlanie szablonu Nagłówek [[Szablon:Nagłówek]] */ }; $(Common.Naglowek); /*Informacje o danej stronie*/ Common.PageInfoInit=function(){ var _g = /_/g; this.name = mw.config.get('wgPageName').replace(/_/g, ' '); this.namespace = mw.config.get('wgNamespaceNumber'); var i = this.name.search(/\/[^\/]*$/g); this.title = this.name.slice(i + 1); this.book = this.name.replace(/\/.*/g, ""); if ( document.URL.search("//pl.wikibooks.org/w/index.php") != -1 ) { re = /\&diff=/g; this.diff = re.test(document.URL); re = /\&action=[^\&]*/g; this.action = document.URL.match(re); if ( this.action === null ) { this.action = 'get'; } else { this.action = this.action[0].slice(8, this.action[0].length); } } else { this.diff = null; this.action = 'get'; } } Common.pageInfo = new Common.PageInfoInit(); /** Collapsible tables ********************************************************* * * Description: Allows tables to be collapsed, showing only the header. See * [[en:Wikipedia:NavFrame]]. * Maintainers: [[User:R. Koot]] */ Common.autoCollapse = 2; Common.collapseCaption = "ukryj"; Common.expandCaption = "pokaż"; Common.collapseTable=function( tableIndex ) { var Button = document.getElementById( "collapseButton" + tableIndex ); var Table = document.getElementById( "collapsibleTable" + tableIndex ); if ( !Table || !Button ) { return false; } var Rows = Table.rows; if ( Button.firstChild.data == Common.collapseCaption ) { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = "none"; } Button.firstChild.data = Common.expandCaption; } else { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = Rows[0].style.display; } Button.firstChild.data = Common.collapseCaption; } } Common.createCollapseButtons=function() { var tableIndex = 0; var NavigationBoxes = new Object(); var Tables = document.getElementsByTagName( "table" ); for ( var i = 0; i < Tables.length; i++ ) { if ( $(Tables[i]).hasClass( "collapsible" ) ) { /* only add button and increment count if there is a header row to work with */ var HeaderRow = Tables[i].getElementsByTagName( "tr" )[0]; if (!HeaderRow) continue; var Header = HeaderRow.getElementsByTagName( "th" )[0]; if (!Header) continue; NavigationBoxes[ tableIndex ] = Tables[i]; Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex ); var Button = document.createElement( "span" ); var ButtonLink = document.createElement( "a" ); var ButtonText = document.createTextNode( Common.collapseCaption ); Button.style.styleFloat = "right"; Button.style.cssFloat = "right"; Button.style.fontWeight = "normal"; Button.style.textAlign = "right"; Button.style.width = "6em"; ButtonLink.style.color = Header.style.color; ButtonLink.setAttribute( "id", "collapseButton" + tableIndex ); ButtonLink.setAttribute( "href", "javascript:Common.collapseTable(" + tableIndex + ");" ); ButtonLink.appendChild( ButtonText ); Button.appendChild( document.createTextNode( "[" ) ); Button.appendChild( ButtonLink ); Button.appendChild( document.createTextNode( "]" ) ); $(Header.childNodes[0]).has('a#collapseButton' + tableIndex).each(function(i,element){ $(element).remove(); }); Header.insertBefore( Button, Header.childNodes[0]); tableIndex++; } } for ( var i = 0; i < tableIndex; i++ ) { if ( $(NavigationBoxes[i]).hasClass( "collapsed" ) || ( tableIndex >= Common.autoCollapse && $(NavigationBoxes[i]).hasClass( "Common.autoCollapse" ) ) ) { collapseTable( i ); } else if ( $(NavigationBoxes[i]).hasClass( "innercollapse" ) ) { var element = NavigationBoxes[i]; while (element = element.parentNode) { if ( $(element).hasClass( "outercollapse" ) ) { collapseTable ( i ); break; } } } } } $(Common.createCollapseButtons ); /** Dynamic Navigation Bars (experimental) ************************************* * * Description: See [[Wikipedia:NavFrame]]. * Maintainers: UNMAINTAINED */ // set up the words in your language Common.NavigationBarHide = '[' + Common.collapseCaption + ']'; Common.NavigationBarShow = '[' + Common.expandCaption + ']'; // shows and hides content and picture (if available) of navigation bars // Parameters: // indexNavigationBar: the index of navigation bar to be toggled Common.toggleNavigationBar=function(indexNavigationBar) { var NavToggle = document.getElementById("NavToggle" + indexNavigationBar); var NavFrame = document.getElementById("NavFrame" + indexNavigationBar); if (!NavFrame || !NavToggle) { return false; } // if shown now if (NavToggle.firstChild.data == Common.NavigationBarHide) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) ) { NavChild.style.display = 'none'; } if ( $(NavChild).hasClass( 'NavContent') ) { NavChild.style.display = 'none'; } } NavToggle.firstChild.data = Common.NavigationBarShow; // if hidden now } else if (NavToggle.firstChild.data == Common.NavigationBarShow) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ($(NavChild).hasClass( 'NavPic')) { NavChild.style.display = 'block'; } if ($(NavChild).hasClass( 'NavContent')) { NavChild.style.display = 'block'; } } NavToggle.firstChild.data = Common.NavigationBarHide; } } // adds show/hide-button to navigation bars Common.createNavigationBarToggleButton=function() { var indexNavigationBar = 0; // iterate over all < div >-elements var divs = document.getElementsByTagName("div"); for (var i = 0; NavFrame = divs[i]; i++) { // if found a navigation bar if ($(NavFrame).hasClass( "NavFrame")) { indexNavigationBar++; var NavToggle = document.createElement("a"); NavToggle.className = 'NavToggle'; NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar); NavToggle.setAttribute('href', 'javascript:Common.toggleNavigationBar(' + indexNavigationBar + ');'); var isCollapsed = $(NavFrame).hasClass( "collapsed" ); /* * Check if any children are already hidden. This loop is here for backwards compatibility: * the old way of making NavFrames start out collapsed was to manually add style="display:none" * to all the NavPic/NavContent elements. Since this was bad for accessibility (no way to make * the content visible without JavaScript support), the new recommended way is to add the class * "collapsed" to the NavFrame itself, just like with collapsible tables. */ for (var NavChild = NavFrame.firstChild; NavChild != null && !isCollapsed; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) || $(NavChild).hasClass( 'NavContent' ) ) { if ( NavChild.style.display == 'none' ) { isCollapsed = true; } } } if (isCollapsed) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) || $(NavChild).hasClass( 'NavContent' ) ) { NavChild.style.display = 'none'; } } } var NavToggleText = document.createTextNode(isCollapsed ? Common.NavigationBarShow : Common.NavigationBarHide); NavToggle.appendChild(NavToggleText); // Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked) for(var j=0; j < NavFrame.childNodes.length; j++) { if ($(NavFrame.childNodes[j]).hasClass( "NavHead")) { $(NavFrame.childNodes[j]).children('a.NavToggle#NavToggle' + indexNavigationBar).each(function(i,element){ $(element).remove(); }); NavFrame.childNodes[j].appendChild(NavToggle); } } NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar); } } } $(Common.createNavigationBarToggleButton ); // Wyszukiwanie Google na stronach podręczników Common.googleSearchInitialized = false; Common.insertGoogleSearch=function() { if ( mw.config.get('wgNamespaceNumber') != 0 || Common.googleSearchInitialized ) { return; } Common.googleSearchInitialized = true; var google = "http://www.google.com/custom?sa=Google+Search&domains=pl.wikibooks.org/wiki/PAGE&sitesearch=pl.wikibooks.org/wiki/PAGE"; var ul = jQuery('#p-tb ul')[0]; if (!ul) { return; } var link = document.createElement('a'); var book = Common.pageInfo.book; if ( book.length == 1 || book.indexOf('++') != -1 || encodeURIComponent(book) != book ) { google = "http://www.google.com/custom?sa=Google+Search&domains=pl.wikibooks.org/wiki/&sitesearch=pl.wikibooks.org/wiki/&q=%22PAGE%22" } link.href = google.replace(/PAGE/g, encodeURIComponent(book)); link.appendChild(document.createTextNode("Szukaj w podręczniku")); var li = document.createElement('li'); li.id = "google-trick-search"; li.appendChild(link); $(ul).children('li#google-trick-search').each(function(i,element){ $(element).remove(); }); ul.insertBefore(li, ul.firstChild); } $(Common.insertGoogleSearch); /*Funkcja do liczenia, czy nastąpiło przepełnienie poziome lub pionowe*/ Common.PobierzSzerokoscPaskaPrzewijania=function(x_box_right){ var div = $('<div style="width:50px;height:50px;overflow:hidden;position:absolute;top:-200px;left:-200px;"><div style="height:100px;"></div></div>'); $('body').append(div); var w1 = $('div', div)["inner"+((x_box_right=="y")?"Width":"Height")](); div.css('overflow-'+(x_box_right||"y"), 'scroll'); var w2 = $('div', div)["inner"+((x_box_right=="y")?"Width":"Height")](); $(div).remove(); return (w1 - w2); } /*Funkcje do obsługi pasków przewijania*/ Common.ScrollBarOverflow=function(){ $('*.mw-overflow-x, *.mw-overflow-y').each(function(i,element_g){ /*start overflow*/ var comp=window.getComputedStyle(element_g, null); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var overflow=comp.getPropertyValue("overflow"); var overflow_x=$(element_g).hasClass('mw-overflow-x'); if(overflow_x){ var overflowX=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); if((overflowX)&&(overflowX=="auto")){ element_g.classList.remove("mw-scrollbar-overflow-x"); const hasHorizontalScrollbar = element_g.scrollWidth > element_g.clientWidth; // true lub false if(hasHorizontalScrollbar){ element_g.classList.add("mw-scrollbar-overflow-x"); } } } var overflow_y=$(element_g).hasClass('mw-overflow-y'); if(overflow_y){ var overflowY=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflowY)&&(overflowY=="auto")){ element_g.classList.remove("mw-scrollbar-overflow-y"); const hasVerticalScrollbar = element_g.scrollHeight > element_g.clientHeight; // true lub false if(hasVerticalScrollbar){ element_g.classList.add("mw-scrollbar-overflow-y"); } } } /*koniec overflow*/ }); } $(function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); $(window).on('scroll', function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); $(window).on('resize', function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); /*Funkcja symulująca właściwości position:sticky, wszędzie tam, gdzie nie można go użyć.*/ Common.StickyXY=function(){ $('*.mw-sticky-x, *.mw-sticky-y').each(function(i,element_g){ $(element_g).css('margin',"100px 0 100px 0"); var comp=window.getComputedStyle(element_g, null); function FunStickyXY(height,top,bottom,width_box,left_box,right_box,x_box,x_box_right){ var pozycje_paskow=new Array(); $(element_g).find('*').each(function(i,element){ var comp=window.getComputedStyle(element, null); var overflow=comp.getPropertyValue("overflow"); var overflow_x=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); var overflow_y=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflow_x=="auto")||(overflow_x=="scroll")||(overflow_y=="auto")||(overflow_y=="scroll")){ pozycje_paskow.push(new Array(element,element.scrollTop,element.scrollLeft)); } }); var height_sticky=0; $('html.client-js.vector-sticky-header-enabled body.skin-vector-search-vue.vector-sticky-header-visible header.vector-sticky-header').each(function(i,el){ var rect_sticky=el.getBoundingClientRect(); height_sticky=parseInt(rect_sticky[height]); }); var StickyXYTopOld=$(element_g).data('stickyXYOld-'+top);var StickyXYBottomOld=$(element_g).data('stickyXYOld-'+bottom); if(StickyXYTopOld===undefined){ var topold_war=parseFloat(element_g.style[top]); $(element_g).data('stickyXYOld-'+top,((!isNaN(topold_war))?topold_war:0)); } if(StickyXYBottomOld===undefined){ var bottomold_war=parseFloat(element_g.style[bottom]); $(element_g).data('stickyXYOld-'+bottom,((!isNaN(bottomold_war))?bottomold_war:0)); } var topold=$(element_g).data('stickyXYOld-'+top)+height_sticky+5; var margintop=parseFloat(comp.getPropertyValue("margin-"+top)); margintop=((!isNaN(margintop))?margintop:0); var marginbottom=parseFloat(comp.getPropertyValue("margin-"+bottom)); marginbottom=((!isNaN(marginbottom))?marginbottom:0); var przodek_height=undefined; element_g.style[height]="auto"; element_g.style["max"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[top]="auto"; element_g.style[bottom]="auto"; if(width_box!=null){ element_g.style[width_box]="auto"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[left_box]="auto"; element_g.style[right_box]="0"; $(element_g).find('.mw-not-overflow-'+x_box+'.mw-overflow-'+x_box).each(function(i,element){ element.style[width_box]="auto"; }); } var parents_node_fun=$(element_g).parents('.mw-parent-node').first(); if((parents_node_fun==null)||(parents_node_fun.length==0)){return;} var width_rodzic=null; var rodzic_element=undefined; var comp_rodz; parents_node_fun.each(function(i,element){ comp_rodz=window.getComputedStyle(element,null); przodek_height=parseFloat(comp_rodz.getPropertyValue([height])); width_rodzic=width_box?parseFloat(comp_rodz.getPropertyValue([width_box])):null; rodzic_element=element; }); var height_box_real=parseFloat(comp.getPropertyValue(height)); var rect_dziecko=element_g.getBoundingClientRect(); var wys=document.documentElement["client"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]; var rect_rodzic; parents_node_fun.each(function(i,element){ rect_rodzic=element.getBoundingClientRect(); }); var top_ab=rect_rodzic[top]-margintop; var bottom_ab=(wys-rect_rodzic[bottom])-marginbottom; element_g.style["max"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=((Math.min(przodek_height,wys-((rect_rodzic[top]>=0)?(rect_rodzic[top]):(0))-((bottom_ab>=0)?(bottom_ab):(0)))-(((top_ab<=0)?(topold):(Math.max(0,topold-top_ab)))+((bottom_ab<=0)?($(element_g).data('stickyXYOld-'+bottom)+5):(Math.max(0,$(element_g).data('stickyXYOld-'+bottom)+5-bottom_ab)))+marginbottom+margintop))*(height_box_real/rect_dziecko[height]))+"px"; element_g.style[height]=(element_g["offset"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))])+"px"; var top_obj=(((top_ab>=0)?0:(-top_ab)))+((top_ab<=0)?(topold):(Math.max(0,topold-top_ab))); element_g.style[top]=top_obj+"px"; element_g.style[bottom]="auto"; if(width_box!=null){ element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; rodzic_element.style.position="static"; rodzic_element.style.overflow="hidden"; var width_box_real=parseFloat(comp.getPropertyValue(width_box)); var rect_dziecko=element_g.getBoundingClientRect(); if(parseInt(width_box_real)>parseInt(rect_dziecko[width_box])){ if(width_box=="width"){ element_g.classList.remove('mw-scrollbar-overflow-x'); }else{ element_g.classList.remove('mw-scrollbar-overflow-y'); } if(rect_dziecko[width_box]>width_rodzic){ if(width_box=="width"){ element_g.classList.add('mw-scrollbar-overflow-x'); }else{ element_g.classList.add('mw-scrollbar-overflow-y'); } } var width_box_real=parseFloat(comp.getPropertyValue(width_box)); var margin_all=parseFloat(comp.getPropertyValue("margin-"+left_box))+parseFloat(comp.getPropertyValue("margin-"+right_box)); margin_all+=parseFloat(comp_rodz.getPropertyValue("padding-"+left_box))+parseFloat(comp_rodz.getPropertyValue("padding-"+right_box)); var dlugosc=(width_rodzic-margin_all); dlugosc=((dlugosc>=0)?dlugosc:0); element_g.style.whiteSpace="nowrap"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width_box]))+"px"; element_g.style[width_box]=width_box_real+"px"; Common.ScrollBarOverflow(); $(element_g).find('.mw-overflow-'+x_box+'.mw-not-overflow-'+x_box+'.mw-scrollbar-overflow-'+x_box).each(function(i,element){ var comp_element=window.getComputedStyle(element, null) element.style[width_box]=(element["scroll"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]+Common.PobierzSzerokoscPaskaPrzewijania(x_box_right)+parseFloat(comp_element.getPropertyValue('padding-'+left_box))+parseFloat(comp_element.getPropertyValue('padding-'+right_box)))+"px"; element.classList.remove('mw-scrollbar-overflow-'+x_box_right); }); element_g.style.whiteSpace="normal"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[width_box]="auto"; var rect_dziecko=element_g.getBoundingClientRect(); var width_box_real=parseFloat(comp.getPropertyValue(width_box)); element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width_box]))+"px"; element_g.style[width_box]=width_box_real+"px"; element_g.style[left_box]="0"; element_g.style[right_box]="auto"; rodzic_element.style.position="relative"; }else{ element_g.style.whiteSpace="nowrap"; var szerokosc_box=rect_dziecko[width_box]; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(szerokosc_box)+"px"; element_g.style[width_box]=(szerokosc_box)+"px"; Common.ScrollBarOverflow(); $(element_g).find('.mw-overflow-'+x_box+'.mw-not-overflow-'+x_box+'.mw-scrollbar-overflow-'+x_box).each(function(i,element){ var comp_element=window.getComputedStyle(element, null); element.style[width_box]=(element["scroll"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]+Common.PobierzSzerokoscPaskaPrzewijania(x_box_right)+parseFloat(comp_element.getPropertyValue('padding-'+left_box))+parseFloat(comp_element.getPropertyValue('padding-'+right_box)))+"px"; element.classList.remove('mw-scrollbar-overflow-'+x_box_right); }); element_g.style.whiteSpace="normal"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[width_box]="auto"; var rect_dziecko=element_g.getBoundingClientRect(); var szerokosc_box=rect_dziecko[width_box]; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(szerokosc_box)+"px"; element_g.style[width_box]=(szerokosc_box)+"px"; var szerokosc=rect_dziecko[width_box]+parseFloat(comp.getPropertyValue("margin-"+left_box))+parseFloat(comp.getPropertyValue("margin-"+right_box)); if(parseInt(szerokosc)>parseInt(width_rodzic)){ element_g.style[right_box]="0"; element_g.style[left_box]="auto"; rodzic_element.style.overflow="visible"; }else{ element_g.style[left_box]="0"; element_g.style[right_box]="auto"; rodzic_element.style.position="relative"; } } } element_g.style[height]="auto"; element_g.style[height]=(element_g["offset"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))])+"px"; Common.ScrollBarOverflow(); for(var i in pozycje_paskow){ pozycje_paskow[i][0].scrollTop=pozycje_paskow[i][1]; pozycje_paskow[i][0].scrollLeft=pozycje_paskow[i][2]; } } element_g.classList.add('mw-sticky-js'); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var visibility=comp.getPropertyValue("visibility"); if(visibility=="hidden"){return;} var position=comp.getPropertyValue("position"); if(position!="absolute"){return;} var sticky_x=$(element_g).hasClass('mw-sticky-x'); var sticky_y=$(element_g).hasClass('mw-sticky-y'); if((sticky_x)&&(!sticky_y)){ var str=$(element_g).parents('.strona_górna, .strona_dolna').first(); if(str.hasClass('strona_górna')){ FunStickyXY("width","left","right","height","top","bottom","y","x"); }else if(str.hasClass('strona_dolna')){ FunStickyXY("width","left","right","height","bottom","top","x","y"); } }else if((!sticky_x)&&(sticky_y)){ var str=$(element_g).parents('.strona_prawa, .strona_lewa').first(); if(str.hasClass('strona_prawa')){ FunStickyXY("height","top","bottom","width","left","right","x","y"); }else if(str.hasClass('strona_lewa')){ FunStickyXY("height","top","bottom","width","right","left","x","y"); } }else{ FunStickyXY("width","left","right",null); FunStickyXY("height","top","bottom",null); } }); } $(function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); $(window).on('scroll', function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); $(window).on('resize', function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); /*Funkcja do ustawiania maksymalnego rozmiaru dziecka, względem rodzica, przy position:absolute*/ Common.OptimalXY=function(){ $('*.mw-optimal-x, *.mw-optimal-y').each(function(i,element_g){ var comp=window.getComputedStyle(element_g, null); function FunOptimalXY(width,left,right){ var pozycje_paskow=new Array(); $(element_g).find('*').each(function(i,element){ var comp=window.getComputedStyle(element, null); var overflow=comp.getPropertyValue("overflow"); var overflow_x=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); var overflow_y=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflow_x=="auto")||(overflow_x=="scroll")||(overflow_y=="auto")||(overflow_y=="scroll")){ pozycje_paskow.push(new Array(element,element.scrollTop,element.scrollLeft)); } }); var width_rodzic=null; var rodzic_node; var comp_rodz; $(element_g).parents('.mw-parent-node').first().each(function(i,element){ comp_rodz=window.getComputedStyle(element,null); width_rodzic=parseFloat(comp_rodz.getPropertyValue([width])); rodzic_node=element; }); if((width_rodzic!=null)&&(!isNaN(width_rodzic))){ element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; var width_box_real=parseFloat(comp.getPropertyValue(width)); var rect_dziecko=element_g.getBoundingClientRect(); if(width=="width"){ element_g.classList.remove('mw-scrollbar-overflow-x'); }else{ element_g.classList.remove('mw-scrollbar-overflow-y'); } if(parseInt(width_box_real)>parseInt(rect_dziecko[width])){ var rect_dziecko=element_g.getBoundingClientRect(); if(rect_dziecko[width]>width_rodzic){ if(width=="width"){ element_g.classList.add('mw-scrollbar-overflow-x'); }else{ element_g.classList.add('mw-scrollbar-overflow-y'); } } var width_box_real=parseFloat(comp.getPropertyValue(width)); var margin_all=parseFloat(comp.getPropertyValue("margin-"+left))+parseFloat(comp.getPropertyValue("margin-"+right)); margin_all+=parseFloat(comp_rodz.getPropertyValue("padding-"+left))+parseFloat(comp_rodz.getPropertyValue("padding-"+right)); var dlugosc=(width_rodzic-margin_all); dlugosc=((dlugosc>=0)?dlugosc:0); element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width]))+"px"; }else{ element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(rect_dziecko[width])+"px"; } var str=$(element_g).parents('.strona_prawa, .strona_lewa, .strona_górna, .strona_dolna').first(); if(!str.hasClass('strona_start-nawigacja_boksy')){ var rect_dziecko=element_g.getBoundingClientRect(); var szerokosc=rect_dziecko[width]+parseFloat(comp.getPropertyValue("margin-"+left))+parseFloat(comp.getPropertyValue("margin-"+right)); if(parseInt(szerokosc)>parseInt(width_rodzic)){ str.css('position','static'); }else{ str.css('position','relative'); } } } for(var i in pozycje_paskow){ pozycje_paskow[i][0].scrollTop=pozycje_paskow[i][1]; pozycje_paskow[i][0].scrollLeft=pozycje_paskow[i][2]; } }; element_g.classList.add('mw-optimal-js'); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var visibility=comp.getPropertyValue("visibility"); if(visibility=="hidden"){return;} var position=comp.getPropertyValue("position"); if(position!="absolute"){return;} var optimal_x=$(element_g).hasClass('mw-optimal-x'); var optimal_y=$(element_g).hasClass('mw-optimal-y'); if(optimal_x){ FunOptimalXY("width","left","right"); } if(optimal_y){ FunOptimalXY("height","top","bottom"); } }); } $(function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); $(window).on("scroll",function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); $(window).on("resize",function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); /*Uruchamianie dodatkowych funkcji, niż standardowe, w href w linkach rozwijanej tabeli TABLE lub ramki DIV, jeśli ona generuje zwiększenie rozmiarów, aby w rodzicu pojawił się pasek przewijania, z dodatkowymi opcjami generowanej przez arkusz kalkulacyjny CSS*/ Common.RamkiTableIDiv=function(obiekt,id_tabeli_lub_ramki,id_nazwa_a,fun_obiektu){ $(obiekt).each(function(i,element_f){ return new Promise(function(resolve,reject){ var czas=0; function Czekaj(){ if(czas>30000){ reject(); } var collapsebutton=$(element_f).find('a#'+id_nazwa_a+i); if((collapsebutton!==null)&&(collapsebutton.length>0)){ var tabele_lub_ramki=collapsebutton.parents('#'+id_tabeli_lub_ramki+i); if((tabele_lub_ramki===null)||(tabele_lub_ramki.length==0)){reject();} resolve(i); }else{ czas+=100; setTimeout(Czekaj,100); } } Czekaj(); }).then(function(i){ $('*.mw-overflow-x a#'+id_nazwa_a+i+', *.mw-overflow-y a#'+id_nazwa_a+i).each(function(j,element_g){ var href=element_g.getAttribute('href'); if((href!=null)&&(href!="")){ var col="[\\s;\\(\\,]*javascript:"+fun_obiektu.replace(/\./g,"\\.")+"\\s*\\(\\s*"+i+"\\s*\\)[\\s;\\)\\,]*"; var re_frame = new RegExp(col,'g'); var re_javascript=new RegExp("^[\\s;]*javascript:"); if((re_javascript.test(href))&&(re_frame.test(href))){ element_g.setAttribute('href',href.replace(/[;\s]*$/g,"")+';javascript:Common.ScrollBarOverflow();javascript:Common.StickyXY();javascript:Common.OptimalXY()') } } }); }).catch(function(){}); }); }; /*Dla menu rozwijanego tabeli TABLE zdefiniowanej na stronie MediaWiki:Common.js*/ Common.RamkiTableIDiv("table.collapsible",'collapsibleTable','collapseButton','Common.collapseTable'); /*Dla menu rozwijanej ramki DIV zdefiniowanej na stronie MediaWiki:Common.js*/ Common.RamkiTableIDiv("div.NavFrame",'NavFrame','NavToggle','Common.toggleNavigationBar'); /*Koniec dodatkowych funkcji*/ /*Uruchamianie dodatkowych zdarzeń do Common.StickyXY i OptimalXY*/ Common.ZdarzeniaDodatkoweFunkcyjneXY=function(css,fun_zdarz){ var fun_css=$(css); fun_css.on('mouseenter',fun_zdarz); fun_css.on('mouseleave',fun_zdarz); fun_css.on('transitionstart',fun_zdarz); fun_css.on('webkittransitionstart',fun_zdarz); fun_css.on('moztransitionstart',fun_zdarz); fun_css.on('otransitionstart',fun_zdarz); fun_css.on('transitionrun',fun_zdarz); fun_css.on('webkittransitionrun',fun_zdarz); fun_css.on('moztransitionrun',fun_zdarz); fun_css.on('otransitionrun',fun_zdarz); fun_css.on('transitioncancel',fun_zdarz); fun_css.on('webkittransitioncancel',fun_zdarz); fun_css.on('moztransitioncancel',fun_zdarz); fun_css.on('otransitioncancel',fun_zdarz); fun_css.on('transitionend',fun_zdarz); fun_css.on('webkittransitionend',fun_zdarz); fun_css.on('moztransitionend',fun_zdarz); fun_css.on('otransitionend',fun_zdarz); }; Common.ZdarzeniaDodatkoweFunkcyjneXY("*.mw-sticky-x, *.mw-sticky-y",Common.StickyXY); Common.ZdarzeniaDodatkoweFunkcyjneXY('*.mw-optimal-x, *.mw-optimal-y',Common.OptimalXY); /*Koniec dodatkowych zdarzeń*/ /*Program do obsługi szablonu StronaStart i jego pokrewnych książkowych*/ Common.StronaStart=function(){ var elements=$('.strona_start .strona .ciało_zawartości > .menu > .menu_boks'); elements.parent().show(); $('.strona_start').find('.strona_lewa .nawigacja_boksy, .strona_prawa .nawigacja_boksy').each(function(i,element){ $(element).css('visibility',"hidden"); }); $('.strona_start').find('.strona_lewa .nawigacja_spis, .strona_prawa .nawigacja_spis').each(function(i,element){ var czy_visible=$(element).css('visibility'); $(element).css('visibility',"visible"); var str=$(element).parents('.strona_prawa, .strona_lewa').first(); str.css('position','relative'); str.addClass('strona_start-nawigacja_spis'); str.removeClass('strona_start-nawigacja_boksy'); if(czy_visible=="hidden"){ $(Common.ScrollBarOverflow); $(Common.StickyXY); } }); function StronaStartFun(){ var id=this; $(id).parents('.strona_start').first().find('.strona .ciało_zawartości > .menu > .menu_boks').children().each(function(i,element){ var display=$(element).css('display'); if(display=="none"){ $(element).css('display',"block"); }else{ $(element).css('display',"none"); } }); $(id).parents('.strona_start').first().find('.strona_lewa, .strona_prawa').children().each(function(i,element){ var visibility=window.getComputedStyle(element, null).getPropertyValue('visibility'); if(visibility=="hidden"){ $(element).css('visibility',"visible"); var str=$(element).parents('.strona_prawa, .strona_lewa').first(); if($(element).hasClass('nawigacja_boksy')){ str.css('position','static'); str.addClass('strona_start-nawigacja_boksy'); str.removeClass('strona_start-nawigacja_spis'); $(Common.ScrollBarOverflow); $(Common.OptimalXY); }else if($(element).hasClass('nawigacja_spis')){ str.css('position','relative'); str.addClass('strona_start-nawigacja_spis'); str.removeClass('strona_start-nawigacja_boksy'); $(Common.ScrollBarOverflow); $(Common.StickyXY); } }else{ $(element).css('visibility',"hidden"); } }); } elements.on('click',StronaStartFun); } $(Common.StronaStart); 5cj1yyphbhxpo9mvhdnv3mxijjm69b0 437161 437160 2022-08-07T18:07:12Z Persino 2851 javascript text/javascript mw.loader.load( '//pl.wikibooks.org/w/index.php?action=raw&ctype=text/javascript&title=Wikipedysta:Persino/Gadget-StronicowyParser.js', 'text/javascript', true ); /**/ /* Umieszczony tutaj kod JavaScript zostanie załadowany przez każdego użytkownika, podczas każdego ładowania strony. */ // Frame Busting if (top != self) top.location.href = self.location.href; /* * Zmienna Common.pageInfo, jego elementy, instrukcja obsługi: * Common.pageInfo.namespace numer przestrzeni nazw (równe wgNamespaceNumber) * Common.pageInfo.name pełna nazwa strony * Common.pageInfo.title tytuł strony, czyli ostatnia część po '/' albo jest równe pageInfo.name, gdy nigdzie nie występuje slash * Common.pageInfo.book tytuł książki * Common.pageInfo.action akcja taka jaka jest w adresie URL pod "action=", w przypadku normalnego czytania strony, action jest równe "get" * Common.pageInfo.diff null w przypadku, gdy nie porównujemy wersji, w przeciwnym wypadku wartość występującą w adresie URL */ /*Przestrzeń nazw: Common, zdefiniowanym za pomocą tablicy*/ var Common=new Array(); /*Funkcje w przestrzeni nazw Common*/ Common.Naglowek=function(){ /* Skrypt odpowiedzialny za wyświetlanie szablonu Nagłówek [[Szablon:Nagłówek]] */ var hideAll = document.getElementById('mójNagłówekUkryj'); var noFooter = false; var footers = 0; var tags = document.getElementsByTagName('div'); for (var i = 0; i < tags.length; i++) { var el=tags[i].getAttribute("id"); if (el=='mojaStopka') footers++; else if (hideAll && (el=='mójNagłówek')) { tags[i].innerHTML=""; noFooter=true; } } if (noFooter) return; var footer = document.getElementById('mojaStopka'); if ((footer !== null) && (footers==1)) { var bodyContent = document.getElementById('bodyContent'); if (bodyContent !== null) { var s0=document.getElementById('mojaStopka0'); var s1=document.getElementById('mojaStopka1'); if ((s1 !== null) || ((s0 === null) && (bodyContent.innerHTML.length>8000))){ var strona=document.getElementById('strona'); if(strona!==null){ strona.appendChild(footer); }else{ var catlinks=document.getElementById('catlinks'); if(catlinks !== null){ bodyContent.insertBefore(footer,catlinks); }else{ bodyContent.appendChild(footer); } } } } } /* Koniec skryptu odpowiedzialnego za wyświetlanie szablonu Nagłówek [[Szablon:Nagłówek]] */ }; $(Common.Naglowek); /*Informacje o danej stronie*/ Common.PageInfoInit=function(){ var _g = /_/g; this.name = mw.config.get('wgPageName').replace(/_/g, ' '); this.namespace = mw.config.get('wgNamespaceNumber'); var i = this.name.search(/\/[^\/]*$/g); this.title = this.name.slice(i + 1); this.book = this.name.replace(/\/.*/g, ""); if ( document.URL.search("//pl.wikibooks.org/w/index.php") != -1 ) { re = /\&diff=/g; this.diff = re.test(document.URL); re = /\&action=[^\&]*/g; this.action = document.URL.match(re); if ( this.action === null ) { this.action = 'get'; } else { this.action = this.action[0].slice(8, this.action[0].length); } } else { this.diff = null; this.action = 'get'; } } Common.pageInfo = new Common.PageInfoInit(); /** Collapsible tables ********************************************************* * * Description: Allows tables to be collapsed, showing only the header. See * [[en:Wikipedia:NavFrame]]. * Maintainers: [[User:R. Koot]] */ Common.autoCollapse = 2; Common.collapseCaption = "ukryj"; Common.expandCaption = "pokaż"; Common.collapseTable=function( tableIndex ) { var Button = document.getElementById( "collapseButton" + tableIndex ); var Table = document.getElementById( "collapsibleTable" + tableIndex ); if ( !Table || !Button ) { return false; } var Rows = Table.rows; if ( Button.firstChild.data == Common.collapseCaption ) { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = "none"; } Button.firstChild.data = Common.expandCaption; } else { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = Rows[0].style.display; } Button.firstChild.data = Common.collapseCaption; } } Common.createCollapseButtons=function() { var tableIndex = 0; var NavigationBoxes = new Object(); var Tables = document.getElementsByTagName( "table" ); for ( var i = 0; i < Tables.length; i++ ) { if ( $(Tables[i]).hasClass( "collapsible" ) ) { /* only add button and increment count if there is a header row to work with */ var HeaderRow = Tables[i].getElementsByTagName( "tr" )[0]; if (!HeaderRow) continue; var Header = HeaderRow.getElementsByTagName( "th" )[0]; if (!Header) continue; NavigationBoxes[ tableIndex ] = Tables[i]; Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex ); var Button = document.createElement( "span" ); var ButtonLink = document.createElement( "a" ); var ButtonText = document.createTextNode( Common.collapseCaption ); Button.style.styleFloat = "right"; Button.style.cssFloat = "right"; Button.style.fontWeight = "normal"; Button.style.textAlign = "right"; Button.style.width = "6em"; ButtonLink.style.color = Header.style.color; ButtonLink.setAttribute( "id", "collapseButton" + tableIndex ); ButtonLink.setAttribute( "href", "javascript:Common.collapseTable(" + tableIndex + ");" ); ButtonLink.appendChild( ButtonText ); Button.appendChild( document.createTextNode( "[" ) ); Button.appendChild( ButtonLink ); Button.appendChild( document.createTextNode( "]" ) ); $(Header.childNodes[0]).has('a#collapseButton' + tableIndex).each(function(i,element){ $(element).remove(); }); Header.insertBefore( Button, Header.childNodes[0]); tableIndex++; } } for ( var i = 0; i < tableIndex; i++ ) { if ( $(NavigationBoxes[i]).hasClass( "collapsed" ) || ( tableIndex >= Common.autoCollapse && $(NavigationBoxes[i]).hasClass( "Common.autoCollapse" ) ) ) { collapseTable( i ); } else if ( $(NavigationBoxes[i]).hasClass( "innercollapse" ) ) { var element = NavigationBoxes[i]; while (element = element.parentNode) { if ( $(element).hasClass( "outercollapse" ) ) { collapseTable ( i ); break; } } } } } $(Common.createCollapseButtons ); /** Dynamic Navigation Bars (experimental) ************************************* * * Description: See [[Wikipedia:NavFrame]]. * Maintainers: UNMAINTAINED */ // set up the words in your language Common.NavigationBarHide = '[' + Common.collapseCaption + ']'; Common.NavigationBarShow = '[' + Common.expandCaption + ']'; // shows and hides content and picture (if available) of navigation bars // Parameters: // indexNavigationBar: the index of navigation bar to be toggled Common.toggleNavigationBar=function(indexNavigationBar) { var NavToggle = document.getElementById("NavToggle" + indexNavigationBar); var NavFrame = document.getElementById("NavFrame" + indexNavigationBar); if (!NavFrame || !NavToggle) { return false; } // if shown now if (NavToggle.firstChild.data == Common.NavigationBarHide) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) ) { NavChild.style.display = 'none'; } if ( $(NavChild).hasClass( 'NavContent') ) { NavChild.style.display = 'none'; } } NavToggle.firstChild.data = Common.NavigationBarShow; // if hidden now } else if (NavToggle.firstChild.data == Common.NavigationBarShow) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ($(NavChild).hasClass( 'NavPic')) { NavChild.style.display = 'block'; } if ($(NavChild).hasClass( 'NavContent')) { NavChild.style.display = 'block'; } } NavToggle.firstChild.data = Common.NavigationBarHide; } } // adds show/hide-button to navigation bars Common.createNavigationBarToggleButton=function() { var indexNavigationBar = 0; // iterate over all < div >-elements var divs = document.getElementsByTagName("div"); for (var i = 0; NavFrame = divs[i]; i++) { // if found a navigation bar if ($(NavFrame).hasClass( "NavFrame")) { indexNavigationBar++; var NavToggle = document.createElement("a"); NavToggle.className = 'NavToggle'; NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar); NavToggle.setAttribute('href', 'javascript:Common.toggleNavigationBar(' + indexNavigationBar + ');'); var isCollapsed = $(NavFrame).hasClass( "collapsed" ); /* * Check if any children are already hidden. This loop is here for backwards compatibility: * the old way of making NavFrames start out collapsed was to manually add style="display:none" * to all the NavPic/NavContent elements. Since this was bad for accessibility (no way to make * the content visible without JavaScript support), the new recommended way is to add the class * "collapsed" to the NavFrame itself, just like with collapsible tables. */ for (var NavChild = NavFrame.firstChild; NavChild != null && !isCollapsed; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) || $(NavChild).hasClass( 'NavContent' ) ) { if ( NavChild.style.display == 'none' ) { isCollapsed = true; } } } if (isCollapsed) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) || $(NavChild).hasClass( 'NavContent' ) ) { NavChild.style.display = 'none'; } } } var NavToggleText = document.createTextNode(isCollapsed ? Common.NavigationBarShow : Common.NavigationBarHide); NavToggle.appendChild(NavToggleText); // Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked) for(var j=0; j < NavFrame.childNodes.length; j++) { if ($(NavFrame.childNodes[j]).hasClass( "NavHead")) { $(NavFrame.childNodes[j]).children('a.NavToggle#NavToggle' + indexNavigationBar).each(function(i,element){ $(element).remove(); }); NavFrame.childNodes[j].appendChild(NavToggle); } } NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar); } } } $(Common.createNavigationBarToggleButton ); // Wyszukiwanie Google na stronach podręczników Common.googleSearchInitialized = false; Common.insertGoogleSearch=function() { if ( mw.config.get('wgNamespaceNumber') != 0 || Common.googleSearchInitialized ) { return; } Common.googleSearchInitialized = true; var google = "http://www.google.com/custom?sa=Google+Search&domains=pl.wikibooks.org/wiki/PAGE&sitesearch=pl.wikibooks.org/wiki/PAGE"; var ul = jQuery('#p-tb ul')[0]; if (!ul) { return; } var link = document.createElement('a'); var book = Common.pageInfo.book; if ( book.length == 1 || book.indexOf('++') != -1 || encodeURIComponent(book) != book ) { google = "http://www.google.com/custom?sa=Google+Search&domains=pl.wikibooks.org/wiki/&sitesearch=pl.wikibooks.org/wiki/&q=%22PAGE%22" } link.href = google.replace(/PAGE/g, encodeURIComponent(book)); link.appendChild(document.createTextNode("Szukaj w podręczniku")); var li = document.createElement('li'); li.id = "google-trick-search"; li.appendChild(link); $(ul).children('li#google-trick-search').each(function(i,element){ $(element).remove(); }); ul.insertBefore(li, ul.firstChild); } $(Common.insertGoogleSearch); /*Funkcja do liczenia, czy nastąpiło przepełnienie poziome lub pionowe*/ Common.PobierzSzerokoscPaskaPrzewijania=function(x_box_right){ var div = $('<div style="width:50px;height:50px;overflow:hidden;position:absolute;top:-200px;left:-200px;"><div style="height:100px;"></div></div>'); $('body').append(div); var w1 = $('div', div)["inner"+((x_box_right=="y")?"Width":"Height")](); div.css('overflow-'+(x_box_right||"y"), 'scroll'); var w2 = $('div', div)["inner"+((x_box_right=="y")?"Width":"Height")](); $(div).remove(); return (w1 - w2); } /*Funkcje do obsługi pasków przewijania*/ Common.ScrollBarOverflow=function(){ $('*.mw-overflow-x, *.mw-overflow-y').each(function(i,element_g){ /*start overflow*/ var comp=window.getComputedStyle(element_g, null); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var overflow=comp.getPropertyValue("overflow"); var overflow_x=$(element_g).hasClass('mw-overflow-x'); if(overflow_x){ var overflowX=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); if((overflowX)&&(overflowX=="auto")){ element_g.classList.remove("mw-scrollbar-overflow-x"); const hasHorizontalScrollbar = element_g.scrollWidth > element_g.clientWidth; // true lub false if(hasHorizontalScrollbar){ element_g.classList.add("mw-scrollbar-overflow-x"); } } } var overflow_y=$(element_g).hasClass('mw-overflow-y'); if(overflow_y){ var overflowY=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflowY)&&(overflowY=="auto")){ element_g.classList.remove("mw-scrollbar-overflow-y"); const hasVerticalScrollbar = element_g.scrollHeight > element_g.clientHeight; // true lub false if(hasVerticalScrollbar){ element_g.classList.add("mw-scrollbar-overflow-y"); } } } /*koniec overflow*/ }); } $(function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); $(window).on('scroll', function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); $(window).on('resize', function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); /*Funkcja symulująca właściwości position:sticky, wszędzie tam, gdzie nie można go użyć.*/ Common.StickyXY=function(){ $('*.mw-sticky-x, *.mw-sticky-y').each(function(i,element_g){ var comp=window.getComputedStyle(element_g, null); function FunStickyXY(height,top,bottom,width_box,left_box,right_box,x_box,x_box_right){ var pozycje_paskow=new Array(); $(element_g).find('*').each(function(i,element){ var comp=window.getComputedStyle(element, null); var overflow=comp.getPropertyValue("overflow"); var overflow_x=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); var overflow_y=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflow_x=="auto")||(overflow_x=="scroll")||(overflow_y=="auto")||(overflow_y=="scroll")){ pozycje_paskow.push(new Array(element,element.scrollTop,element.scrollLeft)); } }); var height_sticky=0; $('html.client-js.vector-sticky-header-enabled body.skin-vector-search-vue.vector-sticky-header-visible header.vector-sticky-header').each(function(i,el){ var rect_sticky=el.getBoundingClientRect(); height_sticky=parseInt(rect_sticky[height]); }); var StickyXYTopOld=$(element_g).data('stickyXYOld-'+top);var StickyXYBottomOld=$(element_g).data('stickyXYOld-'+bottom); if(StickyXYTopOld===undefined){ var topold_war=parseFloat(element_g.style[top]); $(element_g).data('stickyXYOld-'+top,((!isNaN(topold_war))?topold_war:0)); } if(StickyXYBottomOld===undefined){ var bottomold_war=parseFloat(element_g.style[bottom]); $(element_g).data('stickyXYOld-'+bottom,((!isNaN(bottomold_war))?bottomold_war:0)); } var topold=$(element_g).data('stickyXYOld-'+top)+height_sticky+5; var margintop=parseFloat(comp.getPropertyValue("margin-"+top)); margintop=((!isNaN(margintop))?margintop:0); var marginbottom=parseFloat(comp.getPropertyValue("margin-"+bottom)); marginbottom=((!isNaN(marginbottom))?marginbottom:0); var przodek_height=undefined; element_g.style[height]="auto"; element_g.style["max"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[top]="auto"; element_g.style[bottom]="auto"; if(width_box!=null){ element_g.style[width_box]="auto"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[left_box]="auto"; element_g.style[right_box]="0"; $(element_g).find('.mw-not-overflow-'+x_box+'.mw-overflow-'+x_box).each(function(i,element){ element.style[width_box]="auto"; }); } var parents_node_fun=$(element_g).parents('.mw-parent-node').first(); if((parents_node_fun==null)||(parents_node_fun.length==0)){return;} var width_rodzic=null; var rodzic_element=undefined; var comp_rodz; parents_node_fun.each(function(i,element){ comp_rodz=window.getComputedStyle(element,null); przodek_height=parseFloat(comp_rodz.getPropertyValue([height])); width_rodzic=width_box?parseFloat(comp_rodz.getPropertyValue([width_box])):null; rodzic_element=element; }); var height_box_real=parseFloat(comp.getPropertyValue(height)); var rect_dziecko=element_g.getBoundingClientRect(); var wys=document.documentElement["client"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]; var rect_rodzic; parents_node_fun.each(function(i,element){ rect_rodzic=element.getBoundingClientRect(); }); var top_ab=rect_rodzic[top]-margintop; var bottom_ab=(wys-rect_rodzic[bottom])-marginbottom; element_g.style["max"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=((Math.min(przodek_height,wys-((rect_rodzic[top]>=0)?(rect_rodzic[top]):(0))-((bottom_ab>=0)?(bottom_ab):(0)))-(((top_ab<=0)?(topold):(Math.max(0,topold-top_ab)))+((bottom_ab<=0)?($(element_g).data('stickyXYOld-'+bottom)+5):(Math.max(0,$(element_g).data('stickyXYOld-'+bottom)+5-bottom_ab)))+marginbottom+margintop))*(height_box_real/rect_dziecko[height]))+"px"; element_g.style[height]=(element_g["offset"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))])+"px"; var top_obj=(((top_ab>=0)?0:(-top_ab)))+((top_ab<=0)?(topold):(Math.max(0,topold-top_ab))); element_g.style[top]=top_obj+"px"; element_g.style[bottom]="auto"; if(width_box!=null){ element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; rodzic_element.style.position="static"; rodzic_element.style.overflow="hidden"; var width_box_real=parseFloat(comp.getPropertyValue(width_box)); var rect_dziecko=element_g.getBoundingClientRect(); if(parseInt(width_box_real)>parseInt(rect_dziecko[width_box])){ if(width_box=="width"){ element_g.classList.remove('mw-scrollbar-overflow-x'); }else{ element_g.classList.remove('mw-scrollbar-overflow-y'); } if(rect_dziecko[width_box]>width_rodzic){ if(width_box=="width"){ element_g.classList.add('mw-scrollbar-overflow-x'); }else{ element_g.classList.add('mw-scrollbar-overflow-y'); } } var width_box_real=parseFloat(comp.getPropertyValue(width_box)); var margin_all=parseFloat(comp.getPropertyValue("margin-"+left_box))+parseFloat(comp.getPropertyValue("margin-"+right_box)); margin_all+=parseFloat(comp_rodz.getPropertyValue("padding-"+left_box))+parseFloat(comp_rodz.getPropertyValue("padding-"+right_box)); var dlugosc=(width_rodzic-margin_all); dlugosc=((dlugosc>=0)?dlugosc:0); element_g.style.whiteSpace="nowrap"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width_box]))+"px"; element_g.style[width_box]=width_box_real+"px"; Common.ScrollBarOverflow(); $(element_g).find('.mw-overflow-'+x_box+'.mw-not-overflow-'+x_box+'.mw-scrollbar-overflow-'+x_box).each(function(i,element){ var comp_element=window.getComputedStyle(element, null) element.style[width_box]=(element["scroll"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]+Common.PobierzSzerokoscPaskaPrzewijania(x_box_right)+parseFloat(comp_element.getPropertyValue('padding-'+left_box))+parseFloat(comp_element.getPropertyValue('padding-'+right_box)))+"px"; element.classList.remove('mw-scrollbar-overflow-'+x_box_right); }); element_g.style.whiteSpace="normal"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[width_box]="auto"; var rect_dziecko=element_g.getBoundingClientRect(); var width_box_real=parseFloat(comp.getPropertyValue(width_box)); element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width_box]))+"px"; element_g.style[width_box]=width_box_real+"px"; element_g.style[left_box]="0"; element_g.style[right_box]="auto"; rodzic_element.style.position="relative"; }else{ element_g.style.whiteSpace="nowrap"; var szerokosc_box=rect_dziecko[width_box]; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(szerokosc_box)+"px"; element_g.style[width_box]=(szerokosc_box)+"px"; Common.ScrollBarOverflow(); $(element_g).find('.mw-overflow-'+x_box+'.mw-not-overflow-'+x_box+'.mw-scrollbar-overflow-'+x_box).each(function(i,element){ var comp_element=window.getComputedStyle(element, null); element.style[width_box]=(element["scroll"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]+Common.PobierzSzerokoscPaskaPrzewijania(x_box_right)+parseFloat(comp_element.getPropertyValue('padding-'+left_box))+parseFloat(comp_element.getPropertyValue('padding-'+right_box)))+"px"; element.classList.remove('mw-scrollbar-overflow-'+x_box_right); }); element_g.style.whiteSpace="normal"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[width_box]="auto"; var rect_dziecko=element_g.getBoundingClientRect(); var szerokosc_box=rect_dziecko[width_box]; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(szerokosc_box)+"px"; element_g.style[width_box]=(szerokosc_box)+"px"; var szerokosc=rect_dziecko[width_box]+parseFloat(comp.getPropertyValue("margin-"+left_box))+parseFloat(comp.getPropertyValue("margin-"+right_box)); if(parseInt(szerokosc)>parseInt(width_rodzic)){ element_g.style[right_box]="0"; element_g.style[left_box]="auto"; rodzic_element.style.overflow="visible"; }else{ element_g.style[left_box]="0"; element_g.style[right_box]="auto"; rodzic_element.style.position="relative"; } } } element_g.style[height]="auto"; element_g.style[height]=(element_g["offset"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))])+"px"; Common.ScrollBarOverflow(); for(var i in pozycje_paskow){ pozycje_paskow[i][0].scrollTop=pozycje_paskow[i][1]; pozycje_paskow[i][0].scrollLeft=pozycje_paskow[i][2]; } } element_g.classList.add('mw-sticky-js'); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var visibility=comp.getPropertyValue("visibility"); if(visibility=="hidden"){return;} var position=comp.getPropertyValue("position"); if(position!="absolute"){return;} var sticky_x=$(element_g).hasClass('mw-sticky-x'); var sticky_y=$(element_g).hasClass('mw-sticky-y'); if((sticky_x)&&(!sticky_y)){ var str=$(element_g).parents('.strona_górna, .strona_dolna').first(); if(str.hasClass('strona_górna')){ FunStickyXY("width","left","right","height","top","bottom","y","x"); }else if(str.hasClass('strona_dolna')){ FunStickyXY("width","left","right","height","bottom","top","x","y"); } }else if((!sticky_x)&&(sticky_y)){ var str=$(element_g).parents('.strona_prawa, .strona_lewa').first(); if(str.hasClass('strona_prawa')){ FunStickyXY("height","top","bottom","width","left","right","x","y"); }else if(str.hasClass('strona_lewa')){ FunStickyXY("height","top","bottom","width","right","left","x","y"); } }else{ FunStickyXY("width","left","right",null); FunStickyXY("height","top","bottom",null); } }); } $(function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); $(window).on('scroll', function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); $(window).on('resize', function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); /*Funkcja do ustawiania maksymalnego rozmiaru dziecka, względem rodzica, przy position:absolute*/ Common.OptimalXY=function(){ $('*.mw-optimal-x, *.mw-optimal-y').each(function(i,element_g){ var comp=window.getComputedStyle(element_g, null); function FunOptimalXY(width,left,right){ var pozycje_paskow=new Array(); $(element_g).find('*').each(function(i,element){ var comp=window.getComputedStyle(element, null); var overflow=comp.getPropertyValue("overflow"); var overflow_x=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); var overflow_y=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflow_x=="auto")||(overflow_x=="scroll")||(overflow_y=="auto")||(overflow_y=="scroll")){ pozycje_paskow.push(new Array(element,element.scrollTop,element.scrollLeft)); } }); var width_rodzic=null; var rodzic_node; var comp_rodz; $(element_g).parents('.mw-parent-node').first().each(function(i,element){ comp_rodz=window.getComputedStyle(element,null); width_rodzic=parseFloat(comp_rodz.getPropertyValue([width])); rodzic_node=element; }); if((width_rodzic!=null)&&(!isNaN(width_rodzic))){ element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; var width_box_real=parseFloat(comp.getPropertyValue(width)); var rect_dziecko=element_g.getBoundingClientRect(); if(width=="width"){ element_g.classList.remove('mw-scrollbar-overflow-x'); }else{ element_g.classList.remove('mw-scrollbar-overflow-y'); } if(parseInt(width_box_real)>parseInt(rect_dziecko[width])){ var rect_dziecko=element_g.getBoundingClientRect(); if(rect_dziecko[width]>width_rodzic){ if(width=="width"){ element_g.classList.add('mw-scrollbar-overflow-x'); }else{ element_g.classList.add('mw-scrollbar-overflow-y'); } } var width_box_real=parseFloat(comp.getPropertyValue(width)); var margin_all=parseFloat(comp.getPropertyValue("margin-"+left))+parseFloat(comp.getPropertyValue("margin-"+right)); margin_all+=parseFloat(comp_rodz.getPropertyValue("padding-"+left))+parseFloat(comp_rodz.getPropertyValue("padding-"+right)); var dlugosc=(width_rodzic-margin_all); dlugosc=((dlugosc>=0)?dlugosc:0); element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width]))+"px"; }else{ element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(rect_dziecko[width])+"px"; } var str=$(element_g).parents('.strona_prawa, .strona_lewa, .strona_górna, .strona_dolna').first(); if(!str.hasClass('strona_start-nawigacja_boksy')){ var rect_dziecko=element_g.getBoundingClientRect(); var szerokosc=rect_dziecko[width]+parseFloat(comp.getPropertyValue("margin-"+left))+parseFloat(comp.getPropertyValue("margin-"+right)); if(parseInt(szerokosc)>parseInt(width_rodzic)){ str.css('position','static'); }else{ str.css('position','relative'); } } } for(var i in pozycje_paskow){ pozycje_paskow[i][0].scrollTop=pozycje_paskow[i][1]; pozycje_paskow[i][0].scrollLeft=pozycje_paskow[i][2]; } }; element_g.classList.add('mw-optimal-js'); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var visibility=comp.getPropertyValue("visibility"); if(visibility=="hidden"){return;} var position=comp.getPropertyValue("position"); if(position!="absolute"){return;} var optimal_x=$(element_g).hasClass('mw-optimal-x'); var optimal_y=$(element_g).hasClass('mw-optimal-y'); if(optimal_x){ FunOptimalXY("width","left","right"); } if(optimal_y){ FunOptimalXY("height","top","bottom"); } }); } $(function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); $(window).on("scroll",function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); $(window).on("resize",function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); /*Uruchamianie dodatkowych funkcji, niż standardowe, w href w linkach rozwijanej tabeli TABLE lub ramki DIV, jeśli ona generuje zwiększenie rozmiarów, aby w rodzicu pojawił się pasek przewijania, z dodatkowymi opcjami generowanej przez arkusz kalkulacyjny CSS*/ Common.RamkiTableIDiv=function(obiekt,id_tabeli_lub_ramki,id_nazwa_a,fun_obiektu){ $(obiekt).each(function(i,element_f){ return new Promise(function(resolve,reject){ var czas=0; function Czekaj(){ if(czas>30000){ reject(); } var collapsebutton=$(element_f).find('a#'+id_nazwa_a+i); if((collapsebutton!==null)&&(collapsebutton.length>0)){ var tabele_lub_ramki=collapsebutton.parents('#'+id_tabeli_lub_ramki+i); if((tabele_lub_ramki===null)||(tabele_lub_ramki.length==0)){reject();} resolve(i); }else{ czas+=100; setTimeout(Czekaj,100); } } Czekaj(); }).then(function(i){ $('*.mw-overflow-x a#'+id_nazwa_a+i+', *.mw-overflow-y a#'+id_nazwa_a+i).each(function(j,element_g){ var href=element_g.getAttribute('href'); if((href!=null)&&(href!="")){ var col="[\\s;\\(\\,]*javascript:"+fun_obiektu.replace(/\./g,"\\.")+"\\s*\\(\\s*"+i+"\\s*\\)[\\s;\\)\\,]*"; var re_frame = new RegExp(col,'g'); var re_javascript=new RegExp("^[\\s;]*javascript:"); if((re_javascript.test(href))&&(re_frame.test(href))){ element_g.setAttribute('href',href.replace(/[;\s]*$/g,"")+';javascript:Common.ScrollBarOverflow();javascript:Common.StickyXY();javascript:Common.OptimalXY()') } } }); }).catch(function(){}); }); }; /*Dla menu rozwijanego tabeli TABLE zdefiniowanej na stronie MediaWiki:Common.js*/ Common.RamkiTableIDiv("table.collapsible",'collapsibleTable','collapseButton','Common.collapseTable'); /*Dla menu rozwijanej ramki DIV zdefiniowanej na stronie MediaWiki:Common.js*/ Common.RamkiTableIDiv("div.NavFrame",'NavFrame','NavToggle','Common.toggleNavigationBar'); /*Koniec dodatkowych funkcji*/ /*Uruchamianie dodatkowych zdarzeń do Common.StickyXY i OptimalXY*/ Common.ZdarzeniaDodatkoweFunkcyjneXY=function(css,fun_zdarz){ var fun_css=$(css); fun_css.on('mouseenter',fun_zdarz); fun_css.on('mouseleave',fun_zdarz); fun_css.on('transitionstart',fun_zdarz); fun_css.on('webkittransitionstart',fun_zdarz); fun_css.on('moztransitionstart',fun_zdarz); fun_css.on('otransitionstart',fun_zdarz); fun_css.on('transitionrun',fun_zdarz); fun_css.on('webkittransitionrun',fun_zdarz); fun_css.on('moztransitionrun',fun_zdarz); fun_css.on('otransitionrun',fun_zdarz); fun_css.on('transitioncancel',fun_zdarz); fun_css.on('webkittransitioncancel',fun_zdarz); fun_css.on('moztransitioncancel',fun_zdarz); fun_css.on('otransitioncancel',fun_zdarz); fun_css.on('transitionend',fun_zdarz); fun_css.on('webkittransitionend',fun_zdarz); fun_css.on('moztransitionend',fun_zdarz); fun_css.on('otransitionend',fun_zdarz); }; Common.ZdarzeniaDodatkoweFunkcyjneXY("*.mw-sticky-x, *.mw-sticky-y",Common.StickyXY); Common.ZdarzeniaDodatkoweFunkcyjneXY('*.mw-optimal-x, *.mw-optimal-y',Common.OptimalXY); /*Koniec dodatkowych zdarzeń*/ /*Program do obsługi szablonu StronaStart i jego pokrewnych książkowych*/ Common.StronaStart=function(){ var elements=$('.strona_start .strona .ciało_zawartości > .menu > .menu_boks'); elements.parent().show(); $('.strona_start').find('.strona_lewa .nawigacja_boksy, .strona_prawa .nawigacja_boksy').each(function(i,element){ $(element).css('visibility',"hidden"); }); $('.strona_start').find('.strona_lewa .nawigacja_spis, .strona_prawa .nawigacja_spis').each(function(i,element){ var czy_visible=$(element).css('visibility'); $(element).css('visibility',"visible"); var str=$(element).parents('.strona_prawa, .strona_lewa').first(); str.css('position','relative'); str.addClass('strona_start-nawigacja_spis'); str.removeClass('strona_start-nawigacja_boksy'); if(czy_visible=="hidden"){ $(Common.ScrollBarOverflow); $(Common.StickyXY); } }); function StronaStartFun(){ var id=this; $(id).parents('.strona_start').first().find('.strona .ciało_zawartości > .menu > .menu_boks').children().each(function(i,element){ var display=$(element).css('display'); if(display=="none"){ $(element).css('display',"block"); }else{ $(element).css('display',"none"); } }); $(id).parents('.strona_start').first().find('.strona_lewa, .strona_prawa').children().each(function(i,element){ var visibility=window.getComputedStyle(element, null).getPropertyValue('visibility'); if(visibility=="hidden"){ $(element).css('visibility',"visible"); var str=$(element).parents('.strona_prawa, .strona_lewa').first(); if($(element).hasClass('nawigacja_boksy')){ str.css('position','static'); str.addClass('strona_start-nawigacja_boksy'); str.removeClass('strona_start-nawigacja_spis'); $(Common.ScrollBarOverflow); $(Common.OptimalXY); }else if($(element).hasClass('nawigacja_spis')){ str.css('position','relative'); str.addClass('strona_start-nawigacja_spis'); str.removeClass('strona_start-nawigacja_boksy'); $(Common.ScrollBarOverflow); $(Common.StickyXY); } }else{ $(element).css('visibility',"hidden"); } }); } elements.on('click',StronaStartFun); } $(Common.StronaStart); 4opr5z3lfmthoec36xcdj4zr2p6tw74 437162 437161 2022-08-07T18:22:49Z Persino 2851 javascript text/javascript mw.loader.load( '//pl.wikibooks.org/w/index.php?action=raw&ctype=text/javascript&title=Wikipedysta:Persino/Gadget-StronicowyParser.js', 'text/javascript', true ); /**/ /* Umieszczony tutaj kod JavaScript zostanie załadowany przez każdego użytkownika, podczas każdego ładowania strony. */ // Frame Busting if (top != self) top.location.href = self.location.href; /* * Zmienna Common.pageInfo, jego elementy, instrukcja obsługi: * Common.pageInfo.namespace numer przestrzeni nazw (równe wgNamespaceNumber) * Common.pageInfo.name pełna nazwa strony * Common.pageInfo.title tytuł strony, czyli ostatnia część po '/' albo jest równe pageInfo.name, gdy nigdzie nie występuje slash * Common.pageInfo.book tytuł książki * Common.pageInfo.action akcja taka jaka jest w adresie URL pod "action=", w przypadku normalnego czytania strony, action jest równe "get" * Common.pageInfo.diff null w przypadku, gdy nie porównujemy wersji, w przeciwnym wypadku wartość występującą w adresie URL */ /*Przestrzeń nazw: Common, zdefiniowanym za pomocą tablicy*/ var Common=new Array(); /*Funkcje w przestrzeni nazw Common*/ Common.Naglowek=function(){ /* Skrypt odpowiedzialny za wyświetlanie szablonu Nagłówek [[Szablon:Nagłówek]] */ var hideAll = document.getElementById('mójNagłówekUkryj'); var noFooter = false; var footers = 0; var tags = document.getElementsByTagName('div'); for (var i = 0; i < tags.length; i++) { var el=tags[i].getAttribute("id"); if (el=='mojaStopka') footers++; else if (hideAll && (el=='mójNagłówek')) { tags[i].innerHTML=""; noFooter=true; } } if (noFooter) return; var footer = document.getElementById('mojaStopka'); if ((footer !== null) && (footers==1)) { var bodyContent = document.getElementById('bodyContent'); if (bodyContent !== null) { var s0=document.getElementById('mojaStopka0'); var s1=document.getElementById('mojaStopka1'); if ((s1 !== null) || ((s0 === null) && (bodyContent.innerHTML.length>8000))){ var strona=document.getElementById('strona'); if(strona!==null){ strona.appendChild(footer); }else{ var catlinks=document.getElementById('catlinks'); if(catlinks !== null){ bodyContent.insertBefore(footer,catlinks); }else{ bodyContent.appendChild(footer); } } } } } /* Koniec skryptu odpowiedzialnego za wyświetlanie szablonu Nagłówek [[Szablon:Nagłówek]] */ }; $(Common.Naglowek); /*Informacje o danej stronie*/ Common.PageInfoInit=function(){ var _g = /_/g; this.name = mw.config.get('wgPageName').replace(/_/g, ' '); this.namespace = mw.config.get('wgNamespaceNumber'); var i = this.name.search(/\/[^\/]*$/g); this.title = this.name.slice(i + 1); this.book = this.name.replace(/\/.*/g, ""); if ( document.URL.search("//pl.wikibooks.org/w/index.php") != -1 ) { re = /\&diff=/g; this.diff = re.test(document.URL); re = /\&action=[^\&]*/g; this.action = document.URL.match(re); if ( this.action === null ) { this.action = 'get'; } else { this.action = this.action[0].slice(8, this.action[0].length); } } else { this.diff = null; this.action = 'get'; } } Common.pageInfo = new Common.PageInfoInit(); /** Collapsible tables ********************************************************* * * Description: Allows tables to be collapsed, showing only the header. See * [[en:Wikipedia:NavFrame]]. * Maintainers: [[User:R. Koot]] */ Common.autoCollapse = 2; Common.collapseCaption = "ukryj"; Common.expandCaption = "pokaż"; Common.collapseTable=function( tableIndex ) { var Button = document.getElementById( "collapseButton" + tableIndex ); var Table = document.getElementById( "collapsibleTable" + tableIndex ); if ( !Table || !Button ) { return false; } var Rows = Table.rows; if ( Button.firstChild.data == Common.collapseCaption ) { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = "none"; } Button.firstChild.data = Common.expandCaption; } else { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = Rows[0].style.display; } Button.firstChild.data = Common.collapseCaption; } } Common.createCollapseButtons=function() { var tableIndex = 0; var NavigationBoxes = new Object(); var Tables = document.getElementsByTagName( "table" ); for ( var i = 0; i < Tables.length; i++ ) { if ( $(Tables[i]).hasClass( "collapsible" ) ) { /* only add button and increment count if there is a header row to work with */ var HeaderRow = Tables[i].getElementsByTagName( "tr" )[0]; if (!HeaderRow) continue; var Header = HeaderRow.getElementsByTagName( "th" )[0]; if (!Header) continue; NavigationBoxes[ tableIndex ] = Tables[i]; Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex ); var Button = document.createElement( "span" ); var ButtonLink = document.createElement( "a" ); var ButtonText = document.createTextNode( Common.collapseCaption ); Button.style.styleFloat = "right"; Button.style.cssFloat = "right"; Button.style.fontWeight = "normal"; Button.style.textAlign = "right"; Button.style.width = "6em"; ButtonLink.style.color = Header.style.color; ButtonLink.setAttribute( "id", "collapseButton" + tableIndex ); ButtonLink.setAttribute( "href", "javascript:Common.collapseTable(" + tableIndex + ");" ); ButtonLink.appendChild( ButtonText ); Button.appendChild( document.createTextNode( "[" ) ); Button.appendChild( ButtonLink ); Button.appendChild( document.createTextNode( "]" ) ); $(Header.childNodes[0]).has('a#collapseButton' + tableIndex).each(function(i,element){ $(element).remove(); }); Header.insertBefore( Button, Header.childNodes[0]); tableIndex++; } } for ( var i = 0; i < tableIndex; i++ ) { if ( $(NavigationBoxes[i]).hasClass( "collapsed" ) || ( tableIndex >= Common.autoCollapse && $(NavigationBoxes[i]).hasClass( "Common.autoCollapse" ) ) ) { collapseTable( i ); } else if ( $(NavigationBoxes[i]).hasClass( "innercollapse" ) ) { var element = NavigationBoxes[i]; while (element = element.parentNode) { if ( $(element).hasClass( "outercollapse" ) ) { collapseTable ( i ); break; } } } } } $(Common.createCollapseButtons ); /** Dynamic Navigation Bars (experimental) ************************************* * * Description: See [[Wikipedia:NavFrame]]. * Maintainers: UNMAINTAINED */ // set up the words in your language Common.NavigationBarHide = '[' + Common.collapseCaption + ']'; Common.NavigationBarShow = '[' + Common.expandCaption + ']'; // shows and hides content and picture (if available) of navigation bars // Parameters: // indexNavigationBar: the index of navigation bar to be toggled Common.toggleNavigationBar=function(indexNavigationBar) { var NavToggle = document.getElementById("NavToggle" + indexNavigationBar); var NavFrame = document.getElementById("NavFrame" + indexNavigationBar); if (!NavFrame || !NavToggle) { return false; } // if shown now if (NavToggle.firstChild.data == Common.NavigationBarHide) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) ) { NavChild.style.display = 'none'; } if ( $(NavChild).hasClass( 'NavContent') ) { NavChild.style.display = 'none'; } } NavToggle.firstChild.data = Common.NavigationBarShow; // if hidden now } else if (NavToggle.firstChild.data == Common.NavigationBarShow) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ($(NavChild).hasClass( 'NavPic')) { NavChild.style.display = 'block'; } if ($(NavChild).hasClass( 'NavContent')) { NavChild.style.display = 'block'; } } NavToggle.firstChild.data = Common.NavigationBarHide; } } // adds show/hide-button to navigation bars Common.createNavigationBarToggleButton=function() { var indexNavigationBar = 0; // iterate over all < div >-elements var divs = document.getElementsByTagName("div"); for (var i = 0; NavFrame = divs[i]; i++) { // if found a navigation bar if ($(NavFrame).hasClass( "NavFrame")) { indexNavigationBar++; var NavToggle = document.createElement("a"); NavToggle.className = 'NavToggle'; NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar); NavToggle.setAttribute('href', 'javascript:Common.toggleNavigationBar(' + indexNavigationBar + ');'); var isCollapsed = $(NavFrame).hasClass( "collapsed" ); /* * Check if any children are already hidden. This loop is here for backwards compatibility: * the old way of making NavFrames start out collapsed was to manually add style="display:none" * to all the NavPic/NavContent elements. Since this was bad for accessibility (no way to make * the content visible without JavaScript support), the new recommended way is to add the class * "collapsed" to the NavFrame itself, just like with collapsible tables. */ for (var NavChild = NavFrame.firstChild; NavChild != null && !isCollapsed; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) || $(NavChild).hasClass( 'NavContent' ) ) { if ( NavChild.style.display == 'none' ) { isCollapsed = true; } } } if (isCollapsed) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) || $(NavChild).hasClass( 'NavContent' ) ) { NavChild.style.display = 'none'; } } } var NavToggleText = document.createTextNode(isCollapsed ? Common.NavigationBarShow : Common.NavigationBarHide); NavToggle.appendChild(NavToggleText); // Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked) for(var j=0; j < NavFrame.childNodes.length; j++) { if ($(NavFrame.childNodes[j]).hasClass( "NavHead")) { $(NavFrame.childNodes[j]).children('a.NavToggle#NavToggle' + indexNavigationBar).each(function(i,element){ $(element).remove(); }); NavFrame.childNodes[j].appendChild(NavToggle); } } NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar); } } } $(Common.createNavigationBarToggleButton ); // Wyszukiwanie Google na stronach podręczników Common.googleSearchInitialized = false; Common.insertGoogleSearch=function() { if ( mw.config.get('wgNamespaceNumber') != 0 || Common.googleSearchInitialized ) { return; } Common.googleSearchInitialized = true; var google = "http://www.google.com/custom?sa=Google+Search&domains=pl.wikibooks.org/wiki/PAGE&sitesearch=pl.wikibooks.org/wiki/PAGE"; var ul = jQuery('#p-tb ul')[0]; if (!ul) { return; } var link = document.createElement('a'); var book = Common.pageInfo.book; if ( book.length == 1 || book.indexOf('++') != -1 || encodeURIComponent(book) != book ) { google = "http://www.google.com/custom?sa=Google+Search&domains=pl.wikibooks.org/wiki/&sitesearch=pl.wikibooks.org/wiki/&q=%22PAGE%22" } link.href = google.replace(/PAGE/g, encodeURIComponent(book)); link.appendChild(document.createTextNode("Szukaj w podręczniku")); var li = document.createElement('li'); li.id = "google-trick-search"; li.appendChild(link); $(ul).children('li#google-trick-search').each(function(i,element){ $(element).remove(); }); ul.insertBefore(li, ul.firstChild); } $(Common.insertGoogleSearch); /*Funkcja do liczenia, czy nastąpiło przepełnienie poziome lub pionowe*/ Common.PobierzSzerokoscPaskaPrzewijania=function(x_box_right){ var div = $('<div style="width:50px;height:50px;overflow:hidden;position:absolute;top:-200px;left:-200px;"><div style="height:100px;"></div></div>'); $('body').append(div); var w1 = $('div', div)["inner"+((x_box_right=="y")?"Width":"Height")](); div.css('overflow-'+(x_box_right||"y"), 'scroll'); var w2 = $('div', div)["inner"+((x_box_right=="y")?"Width":"Height")](); $(div).remove(); return (w1 - w2); } /*Funkcje do obsługi pasków przewijania*/ Common.ScrollBarOverflow=function(){ $('*.mw-overflow-x, *.mw-overflow-y').each(function(i,element_g){ /*start overflow*/ var comp=window.getComputedStyle(element_g, null); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var overflow=comp.getPropertyValue("overflow"); var overflow_x=$(element_g).hasClass('mw-overflow-x'); if(overflow_x){ var overflowX=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); if((overflowX)&&(overflowX=="auto")){ element_g.classList.remove("mw-scrollbar-overflow-x"); const hasHorizontalScrollbar = element_g.scrollWidth > element_g.clientWidth; // true lub false if(hasHorizontalScrollbar){ element_g.classList.add("mw-scrollbar-overflow-x"); } } } var overflow_y=$(element_g).hasClass('mw-overflow-y'); if(overflow_y){ var overflowY=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflowY)&&(overflowY=="auto")){ element_g.classList.remove("mw-scrollbar-overflow-y"); const hasVerticalScrollbar = element_g.scrollHeight > element_g.clientHeight; // true lub false if(hasVerticalScrollbar){ element_g.classList.add("mw-scrollbar-overflow-y"); } } } /*koniec overflow*/ }); } $(function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); $(window).on('scroll', function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); $(window).on('resize', function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); /*Funkcja symulująca właściwości position:sticky, wszędzie tam, gdzie nie można go użyć.*/ Common.StickyXY=function(){ $('*.mw-sticky-x, *.mw-sticky-y').each(function(i,element_g){ var comp=window.getComputedStyle(element_g, null); function FunStickyXY(height,top,bottom,width_box,left_box,right_box,x_box,x_box_right){ var pozycje_paskow=new Array(); $(element_g).find('*').each(function(i,element){ var comp=window.getComputedStyle(element, null); var overflow=comp.getPropertyValue("overflow"); var overflow_x=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); var overflow_y=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflow_x=="auto")||(overflow_x=="scroll")||(overflow_y=="auto")||(overflow_y=="scroll")){ pozycje_paskow.push(new Array(element,element.scrollTop,element.scrollLeft)); } }); var height_sticky=0; $('html.client-js.vector-sticky-header-enabled body.skin-vector-search-vue.vector-sticky-header-visible header.vector-sticky-header').each(function(i,el){ var rect_sticky=el.getBoundingClientRect(); height_sticky=parseInt(rect_sticky[height]); }); var StickyXYTopOld=$(element_g).data('stickyXYOld-'+top);var StickyXYBottomOld=$(element_g).data('stickyXYOld-'+bottom); if(StickyXYTopOld===undefined){ var topold_war=parseFloat(element_g.style[top]); $(element_g).data('stickyXYOld-'+top,((!isNaN(topold_war))?topold_war:0)); } if(StickyXYBottomOld===undefined){ var bottomold_war=parseFloat(element_g.style[bottom]); $(element_g).data('stickyXYOld-'+bottom,((!isNaN(bottomold_war))?bottomold_war:0)); } var topold=$(element_g).data('stickyXYOld-'+top)+height_sticky+5; var margintop=parseFloat(comp.getPropertyValue("margin-"+top)); margintop=((!isNaN(margintop))?margintop:0); var marginbottom=parseFloat(comp.getPropertyValue("margin-"+bottom)); marginbottom=((!isNaN(marginbottom))?marginbottom:0); var przodek_height=undefined; element_g.style[height]="auto"; element_g.style["max"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[top]="auto"; element_g.style[bottom]="auto"; if(width_box!=null){ element_g.style[width_box]="auto"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[left_box]="auto"; element_g.style[right_box]="0"; $(element_g).find('.mw-not-overflow-'+x_box+'.mw-overflow-'+x_box).each(function(i,element){ element.style[width_box]="auto"; }); } var parents_node_fun=$(element_g).parents('.mw-parent-node').first(); if((parents_node_fun==null)||(parents_node_fun.length==0)){return;} var width_rodzic=null; var rodzic_element=undefined; var comp_rodz; parents_node_fun.each(function(i,element){ comp_rodz=window.getComputedStyle(element,null); przodek_height=parseFloat(comp_rodz.getPropertyValue([height])); width_rodzic=width_box?parseFloat(comp_rodz.getPropertyValue([width_box])):null; rodzic_element=element; }); var height_box_real=parseFloat(comp.getPropertyValue(height)); var rect_dziecko=element_g.getBoundingClientRect(); var wys=document.documentElement["client"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]; var rect_rodzic; parents_node_fun.each(function(i,element){ rect_rodzic=element.getBoundingClientRect(); }); var top_ab=rect_rodzic[top]-margintop; var bottom_ab=(wys-rect_rodzic[bottom])-marginbottom; var maxheight=Math.min(przodek_height,wys-((rect_rodzic[top]>=0)?(rect_rodzic[top]):(0))-((bottom_ab>=0)?(bottom_ab):(0)))-(((top_ab<=0)?(topold):(Math.max(0,topold-top_ab)))+((bottom_ab<=0)?($(element_g).data('stickyXYOld-'+bottom)+5):(Math.max(0,$(element_g).data('stickyXYOld-'+bottom)+5-bottom_ab)))+marginbottom+margintop); element_g.style["max"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(((maxheight>=0)?maxheight:0)*(height_box_real/rect_dziecko[height]))+"px"; element_g.style[height]=(element_g["offset"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))])+"px"; var top_obj=(((top_ab>=0)?0:(-top_ab)))+((top_ab<=0)?(topold):(Math.max(0,topold-top_ab))); element_g.style[top]=top_obj+"px"; element_g.style[bottom]="auto"; if(width_box!=null){ element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; rodzic_element.style.position="static"; rodzic_element.style.overflow="hidden"; var width_box_real=parseFloat(comp.getPropertyValue(width_box)); var rect_dziecko=element_g.getBoundingClientRect(); if(parseInt(width_box_real)>parseInt(rect_dziecko[width_box])){ if(width_box=="width"){ element_g.classList.remove('mw-scrollbar-overflow-x'); }else{ element_g.classList.remove('mw-scrollbar-overflow-y'); } if(rect_dziecko[width_box]>width_rodzic){ if(width_box=="width"){ element_g.classList.add('mw-scrollbar-overflow-x'); }else{ element_g.classList.add('mw-scrollbar-overflow-y'); } } var width_box_real=parseFloat(comp.getPropertyValue(width_box)); var margin_all=parseFloat(comp.getPropertyValue("margin-"+left_box))+parseFloat(comp.getPropertyValue("margin-"+right_box)); margin_all+=parseFloat(comp_rodz.getPropertyValue("padding-"+left_box))+parseFloat(comp_rodz.getPropertyValue("padding-"+right_box)); var dlugosc=(width_rodzic-margin_all); dlugosc=((dlugosc>=0)?dlugosc:0); element_g.style.whiteSpace="nowrap"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width_box]))+"px"; element_g.style[width_box]=width_box_real+"px"; Common.ScrollBarOverflow(); $(element_g).find('.mw-overflow-'+x_box+'.mw-not-overflow-'+x_box+'.mw-scrollbar-overflow-'+x_box).each(function(i,element){ var comp_element=window.getComputedStyle(element, null) element.style[width_box]=(element["scroll"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]+Common.PobierzSzerokoscPaskaPrzewijania(x_box_right)+parseFloat(comp_element.getPropertyValue('padding-'+left_box))+parseFloat(comp_element.getPropertyValue('padding-'+right_box)))+"px"; element.classList.remove('mw-scrollbar-overflow-'+x_box_right); }); element_g.style.whiteSpace="normal"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[width_box]="auto"; var rect_dziecko=element_g.getBoundingClientRect(); var width_box_real=parseFloat(comp.getPropertyValue(width_box)); element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width_box]))+"px"; element_g.style[width_box]=width_box_real+"px"; element_g.style[left_box]="0"; element_g.style[right_box]="auto"; rodzic_element.style.position="relative"; }else{ element_g.style.whiteSpace="nowrap"; var szerokosc_box=rect_dziecko[width_box]; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(szerokosc_box)+"px"; element_g.style[width_box]=(szerokosc_box)+"px"; Common.ScrollBarOverflow(); $(element_g).find('.mw-overflow-'+x_box+'.mw-not-overflow-'+x_box+'.mw-scrollbar-overflow-'+x_box).each(function(i,element){ var comp_element=window.getComputedStyle(element, null); element.style[width_box]=(element["scroll"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]+Common.PobierzSzerokoscPaskaPrzewijania(x_box_right)+parseFloat(comp_element.getPropertyValue('padding-'+left_box))+parseFloat(comp_element.getPropertyValue('padding-'+right_box)))+"px"; element.classList.remove('mw-scrollbar-overflow-'+x_box_right); }); element_g.style.whiteSpace="normal"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[width_box]="auto"; var rect_dziecko=element_g.getBoundingClientRect(); var szerokosc_box=rect_dziecko[width_box]; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(szerokosc_box)+"px"; element_g.style[width_box]=(szerokosc_box)+"px"; var szerokosc=rect_dziecko[width_box]+parseFloat(comp.getPropertyValue("margin-"+left_box))+parseFloat(comp.getPropertyValue("margin-"+right_box)); if(parseInt(szerokosc)>parseInt(width_rodzic)){ element_g.style[right_box]="0"; element_g.style[left_box]="auto"; rodzic_element.style.overflow="visible"; }else{ element_g.style[left_box]="0"; element_g.style[right_box]="auto"; rodzic_element.style.position="relative"; } } } element_g.style[height]="auto"; element_g.style[height]=(element_g["offset"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))])+"px"; Common.ScrollBarOverflow(); for(var i in pozycje_paskow){ pozycje_paskow[i][0].scrollTop=pozycje_paskow[i][1]; pozycje_paskow[i][0].scrollLeft=pozycje_paskow[i][2]; } } element_g.classList.add('mw-sticky-js'); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var visibility=comp.getPropertyValue("visibility"); if(visibility=="hidden"){return;} var position=comp.getPropertyValue("position"); if(position!="absolute"){return;} var sticky_x=$(element_g).hasClass('mw-sticky-x'); var sticky_y=$(element_g).hasClass('mw-sticky-y'); if((sticky_x)&&(!sticky_y)){ var str=$(element_g).parents('.strona_górna, .strona_dolna').first(); if(str.hasClass('strona_górna')){ FunStickyXY("width","left","right","height","top","bottom","y","x"); }else if(str.hasClass('strona_dolna')){ FunStickyXY("width","left","right","height","bottom","top","x","y"); } }else if((!sticky_x)&&(sticky_y)){ var str=$(element_g).parents('.strona_prawa, .strona_lewa').first(); if(str.hasClass('strona_prawa')){ FunStickyXY("height","top","bottom","width","left","right","x","y"); }else if(str.hasClass('strona_lewa')){ FunStickyXY("height","top","bottom","width","right","left","x","y"); } }else{ FunStickyXY("width","left","right",null); FunStickyXY("height","top","bottom",null); } }); } $(function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); $(window).on('scroll', function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); $(window).on('resize', function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); /*Funkcja do ustawiania maksymalnego rozmiaru dziecka, względem rodzica, przy position:absolute*/ Common.OptimalXY=function(){ $('*.mw-optimal-x, *.mw-optimal-y').each(function(i,element_g){ var comp=window.getComputedStyle(element_g, null); function FunOptimalXY(width,left,right){ var pozycje_paskow=new Array(); $(element_g).find('*').each(function(i,element){ var comp=window.getComputedStyle(element, null); var overflow=comp.getPropertyValue("overflow"); var overflow_x=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); var overflow_y=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflow_x=="auto")||(overflow_x=="scroll")||(overflow_y=="auto")||(overflow_y=="scroll")){ pozycje_paskow.push(new Array(element,element.scrollTop,element.scrollLeft)); } }); var width_rodzic=null; var rodzic_node; var comp_rodz; $(element_g).parents('.mw-parent-node').first().each(function(i,element){ comp_rodz=window.getComputedStyle(element,null); width_rodzic=parseFloat(comp_rodz.getPropertyValue([width])); rodzic_node=element; }); if((width_rodzic!=null)&&(!isNaN(width_rodzic))){ element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; var width_box_real=parseFloat(comp.getPropertyValue(width)); var rect_dziecko=element_g.getBoundingClientRect(); if(width=="width"){ element_g.classList.remove('mw-scrollbar-overflow-x'); }else{ element_g.classList.remove('mw-scrollbar-overflow-y'); } if(parseInt(width_box_real)>parseInt(rect_dziecko[width])){ var rect_dziecko=element_g.getBoundingClientRect(); if(rect_dziecko[width]>width_rodzic){ if(width=="width"){ element_g.classList.add('mw-scrollbar-overflow-x'); }else{ element_g.classList.add('mw-scrollbar-overflow-y'); } } var width_box_real=parseFloat(comp.getPropertyValue(width)); var margin_all=parseFloat(comp.getPropertyValue("margin-"+left))+parseFloat(comp.getPropertyValue("margin-"+right)); margin_all+=parseFloat(comp_rodz.getPropertyValue("padding-"+left))+parseFloat(comp_rodz.getPropertyValue("padding-"+right)); var dlugosc=(width_rodzic-margin_all); dlugosc=((dlugosc>=0)?dlugosc:0); element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width]))+"px"; }else{ element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(rect_dziecko[width])+"px"; } var str=$(element_g).parents('.strona_prawa, .strona_lewa, .strona_górna, .strona_dolna').first(); if(!str.hasClass('strona_start-nawigacja_boksy')){ var rect_dziecko=element_g.getBoundingClientRect(); var szerokosc=rect_dziecko[width]+parseFloat(comp.getPropertyValue("margin-"+left))+parseFloat(comp.getPropertyValue("margin-"+right)); if(parseInt(szerokosc)>parseInt(width_rodzic)){ str.css('position','static'); }else{ str.css('position','relative'); } } } for(var i in pozycje_paskow){ pozycje_paskow[i][0].scrollTop=pozycje_paskow[i][1]; pozycje_paskow[i][0].scrollLeft=pozycje_paskow[i][2]; } }; element_g.classList.add('mw-optimal-js'); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var visibility=comp.getPropertyValue("visibility"); if(visibility=="hidden"){return;} var position=comp.getPropertyValue("position"); if(position!="absolute"){return;} var optimal_x=$(element_g).hasClass('mw-optimal-x'); var optimal_y=$(element_g).hasClass('mw-optimal-y'); if(optimal_x){ FunOptimalXY("width","left","right"); } if(optimal_y){ FunOptimalXY("height","top","bottom"); } }); } $(function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); $(window).on("scroll",function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); $(window).on("resize",function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); /*Uruchamianie dodatkowych funkcji, niż standardowe, w href w linkach rozwijanej tabeli TABLE lub ramki DIV, jeśli ona generuje zwiększenie rozmiarów, aby w rodzicu pojawił się pasek przewijania, z dodatkowymi opcjami generowanej przez arkusz kalkulacyjny CSS*/ Common.RamkiTableIDiv=function(obiekt,id_tabeli_lub_ramki,id_nazwa_a,fun_obiektu){ $(obiekt).each(function(i,element_f){ return new Promise(function(resolve,reject){ var czas=0; function Czekaj(){ if(czas>30000){ reject(); } var collapsebutton=$(element_f).find('a#'+id_nazwa_a+i); if((collapsebutton!==null)&&(collapsebutton.length>0)){ var tabele_lub_ramki=collapsebutton.parents('#'+id_tabeli_lub_ramki+i); if((tabele_lub_ramki===null)||(tabele_lub_ramki.length==0)){reject();} resolve(i); }else{ czas+=100; setTimeout(Czekaj,100); } } Czekaj(); }).then(function(i){ $('*.mw-overflow-x a#'+id_nazwa_a+i+', *.mw-overflow-y a#'+id_nazwa_a+i).each(function(j,element_g){ var href=element_g.getAttribute('href'); if((href!=null)&&(href!="")){ var col="[\\s;\\(\\,]*javascript:"+fun_obiektu.replace(/\./g,"\\.")+"\\s*\\(\\s*"+i+"\\s*\\)[\\s;\\)\\,]*"; var re_frame = new RegExp(col,'g'); var re_javascript=new RegExp("^[\\s;]*javascript:"); if((re_javascript.test(href))&&(re_frame.test(href))){ element_g.setAttribute('href',href.replace(/[;\s]*$/g,"")+';javascript:Common.ScrollBarOverflow();javascript:Common.StickyXY();javascript:Common.OptimalXY()') } } }); }).catch(function(){}); }); }; /*Dla menu rozwijanego tabeli TABLE zdefiniowanej na stronie MediaWiki:Common.js*/ Common.RamkiTableIDiv("table.collapsible",'collapsibleTable','collapseButton','Common.collapseTable'); /*Dla menu rozwijanej ramki DIV zdefiniowanej na stronie MediaWiki:Common.js*/ Common.RamkiTableIDiv("div.NavFrame",'NavFrame','NavToggle','Common.toggleNavigationBar'); /*Koniec dodatkowych funkcji*/ /*Uruchamianie dodatkowych zdarzeń do Common.StickyXY i OptimalXY*/ Common.ZdarzeniaDodatkoweFunkcyjneXY=function(css,fun_zdarz){ var fun_css=$(css); fun_css.on('mouseenter',fun_zdarz); fun_css.on('mouseleave',fun_zdarz); fun_css.on('transitionstart',fun_zdarz); fun_css.on('webkittransitionstart',fun_zdarz); fun_css.on('moztransitionstart',fun_zdarz); fun_css.on('otransitionstart',fun_zdarz); fun_css.on('transitionrun',fun_zdarz); fun_css.on('webkittransitionrun',fun_zdarz); fun_css.on('moztransitionrun',fun_zdarz); fun_css.on('otransitionrun',fun_zdarz); fun_css.on('transitioncancel',fun_zdarz); fun_css.on('webkittransitioncancel',fun_zdarz); fun_css.on('moztransitioncancel',fun_zdarz); fun_css.on('otransitioncancel',fun_zdarz); fun_css.on('transitionend',fun_zdarz); fun_css.on('webkittransitionend',fun_zdarz); fun_css.on('moztransitionend',fun_zdarz); fun_css.on('otransitionend',fun_zdarz); }; Common.ZdarzeniaDodatkoweFunkcyjneXY("*.mw-sticky-x, *.mw-sticky-y",Common.StickyXY); Common.ZdarzeniaDodatkoweFunkcyjneXY('*.mw-optimal-x, *.mw-optimal-y',Common.OptimalXY); /*Koniec dodatkowych zdarzeń*/ /*Program do obsługi szablonu StronaStart i jego pokrewnych książkowych*/ Common.StronaStart=function(){ var elements=$('.strona_start .strona .ciało_zawartości > .menu > .menu_boks'); elements.parent().show(); $('.strona_start').find('.strona_lewa .nawigacja_boksy, .strona_prawa .nawigacja_boksy').each(function(i,element){ $(element).css('visibility',"hidden"); }); $('.strona_start').find('.strona_lewa .nawigacja_spis, .strona_prawa .nawigacja_spis').each(function(i,element){ var czy_visible=$(element).css('visibility'); $(element).css('visibility',"visible"); var str=$(element).parents('.strona_prawa, .strona_lewa').first(); str.css('position','relative'); str.addClass('strona_start-nawigacja_spis'); str.removeClass('strona_start-nawigacja_boksy'); if(czy_visible=="hidden"){ $(Common.ScrollBarOverflow); $(Common.StickyXY); } }); function StronaStartFun(){ var id=this; $(id).parents('.strona_start').first().find('.strona .ciało_zawartości > .menu > .menu_boks').children().each(function(i,element){ var display=$(element).css('display'); if(display=="none"){ $(element).css('display',"block"); }else{ $(element).css('display',"none"); } }); $(id).parents('.strona_start').first().find('.strona_lewa, .strona_prawa').children().each(function(i,element){ var visibility=window.getComputedStyle(element, null).getPropertyValue('visibility'); if(visibility=="hidden"){ $(element).css('visibility',"visible"); var str=$(element).parents('.strona_prawa, .strona_lewa').first(); if($(element).hasClass('nawigacja_boksy')){ str.css('position','static'); str.addClass('strona_start-nawigacja_boksy'); str.removeClass('strona_start-nawigacja_spis'); $(Common.ScrollBarOverflow); $(Common.OptimalXY); }else if($(element).hasClass('nawigacja_spis')){ str.css('position','relative'); str.addClass('strona_start-nawigacja_spis'); str.removeClass('strona_start-nawigacja_boksy'); $(Common.ScrollBarOverflow); $(Common.StickyXY); } }else{ $(element).css('visibility',"hidden"); } }); } elements.on('click',StronaStartFun); } $(Common.StronaStart); isnn6ghu6ic26vtpo983d03b0ps4r7n 437163 437162 2022-08-07T18:53:42Z Persino 2851 javascript text/javascript mw.loader.load( '//pl.wikibooks.org/w/index.php?action=raw&ctype=text/javascript&title=Wikipedysta:Persino/Gadget-StronicowyParser.js', 'text/javascript', true ); /**/ /* Umieszczony tutaj kod JavaScript zostanie załadowany przez każdego użytkownika, podczas każdego ładowania strony. */ // Frame Busting if (top != self) top.location.href = self.location.href; /* * Zmienna Common.pageInfo, jego elementy, instrukcja obsługi: * Common.pageInfo.namespace numer przestrzeni nazw (równe wgNamespaceNumber) * Common.pageInfo.name pełna nazwa strony * Common.pageInfo.title tytuł strony, czyli ostatnia część po '/' albo jest równe pageInfo.name, gdy nigdzie nie występuje slash * Common.pageInfo.book tytuł książki * Common.pageInfo.action akcja taka jaka jest w adresie URL pod "action=", w przypadku normalnego czytania strony, action jest równe "get" * Common.pageInfo.diff null w przypadku, gdy nie porównujemy wersji, w przeciwnym wypadku wartość występującą w adresie URL */ /*Przestrzeń nazw: Common, zdefiniowanym za pomocą tablicy*/ var Common=new Array(); /*Funkcje w przestrzeni nazw Common*/ Common.Naglowek=function(){ /* Skrypt odpowiedzialny za wyświetlanie szablonu Nagłówek [[Szablon:Nagłówek]] */ var hideAll = document.getElementById('mójNagłówekUkryj'); var noFooter = false; var footers = 0; var tags = document.getElementsByTagName('div'); for (var i = 0; i < tags.length; i++) { var el=tags[i].getAttribute("id"); if (el=='mojaStopka') footers++; else if (hideAll && (el=='mójNagłówek')) { tags[i].innerHTML=""; noFooter=true; } } if (noFooter) return; var footer = document.getElementById('mojaStopka'); if ((footer !== null) && (footers==1)) { var bodyContent = document.getElementById('bodyContent'); if (bodyContent !== null) { var s0=document.getElementById('mojaStopka0'); var s1=document.getElementById('mojaStopka1'); if ((s1 !== null) || ((s0 === null) && (bodyContent.innerHTML.length>8000))){ var strona=document.getElementById('strona'); if(strona!==null){ strona.appendChild(footer); }else{ var catlinks=document.getElementById('catlinks'); if(catlinks !== null){ bodyContent.insertBefore(footer,catlinks); }else{ bodyContent.appendChild(footer); } } } } } /* Koniec skryptu odpowiedzialnego za wyświetlanie szablonu Nagłówek [[Szablon:Nagłówek]] */ }; $(Common.Naglowek); /*Informacje o danej stronie*/ Common.PageInfoInit=function(){ var _g = /_/g; this.name = mw.config.get('wgPageName').replace(/_/g, ' '); this.namespace = mw.config.get('wgNamespaceNumber'); var i = this.name.search(/\/[^\/]*$/g); this.title = this.name.slice(i + 1); this.book = this.name.replace(/\/.*/g, ""); if ( document.URL.search("//pl.wikibooks.org/w/index.php") != -1 ) { re = /\&diff=/g; this.diff = re.test(document.URL); re = /\&action=[^\&]*/g; this.action = document.URL.match(re); if ( this.action === null ) { this.action = 'get'; } else { this.action = this.action[0].slice(8, this.action[0].length); } } else { this.diff = null; this.action = 'get'; } } Common.pageInfo = new Common.PageInfoInit(); /** Collapsible tables ********************************************************* * * Description: Allows tables to be collapsed, showing only the header. See * [[en:Wikipedia:NavFrame]]. * Maintainers: [[User:R. Koot]] */ Common.autoCollapse = 2; Common.collapseCaption = "ukryj"; Common.expandCaption = "pokaż"; Common.collapseTable=function( tableIndex ) { var Button = document.getElementById( "collapseButton" + tableIndex ); var Table = document.getElementById( "collapsibleTable" + tableIndex ); if ( !Table || !Button ) { return false; } var Rows = Table.rows; if ( Button.firstChild.data == Common.collapseCaption ) { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = "none"; } Button.firstChild.data = Common.expandCaption; } else { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = Rows[0].style.display; } Button.firstChild.data = Common.collapseCaption; } } Common.createCollapseButtons=function() { var tableIndex = 0; var NavigationBoxes = new Object(); var Tables = document.getElementsByTagName( "table" ); for ( var i = 0; i < Tables.length; i++ ) { if ( $(Tables[i]).hasClass( "collapsible" ) ) { /* only add button and increment count if there is a header row to work with */ var HeaderRow = Tables[i].getElementsByTagName( "tr" )[0]; if (!HeaderRow) continue; var Header = HeaderRow.getElementsByTagName( "th" )[0]; if (!Header) continue; NavigationBoxes[ tableIndex ] = Tables[i]; Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex ); var Button = document.createElement( "span" ); var ButtonLink = document.createElement( "a" ); var ButtonText = document.createTextNode( Common.collapseCaption ); Button.style.styleFloat = "right"; Button.style.cssFloat = "right"; Button.style.fontWeight = "normal"; Button.style.textAlign = "right"; Button.style.width = "6em"; ButtonLink.style.color = Header.style.color; ButtonLink.setAttribute( "id", "collapseButton" + tableIndex ); ButtonLink.setAttribute( "href", "javascript:Common.collapseTable(" + tableIndex + ");" ); ButtonLink.appendChild( ButtonText ); Button.appendChild( document.createTextNode( "[" ) ); Button.appendChild( ButtonLink ); Button.appendChild( document.createTextNode( "]" ) ); $(Header.childNodes[0]).has('a#collapseButton' + tableIndex).each(function(i,element){ $(element).remove(); }); Header.insertBefore( Button, Header.childNodes[0]); tableIndex++; } } for ( var i = 0; i < tableIndex; i++ ) { if ( $(NavigationBoxes[i]).hasClass( "collapsed" ) || ( tableIndex >= Common.autoCollapse && $(NavigationBoxes[i]).hasClass( "Common.autoCollapse" ) ) ) { collapseTable( i ); } else if ( $(NavigationBoxes[i]).hasClass( "innercollapse" ) ) { var element = NavigationBoxes[i]; while (element = element.parentNode) { if ( $(element).hasClass( "outercollapse" ) ) { collapseTable ( i ); break; } } } } } $(Common.createCollapseButtons ); /** Dynamic Navigation Bars (experimental) ************************************* * * Description: See [[Wikipedia:NavFrame]]. * Maintainers: UNMAINTAINED */ // set up the words in your language Common.NavigationBarHide = '[' + Common.collapseCaption + ']'; Common.NavigationBarShow = '[' + Common.expandCaption + ']'; // shows and hides content and picture (if available) of navigation bars // Parameters: // indexNavigationBar: the index of navigation bar to be toggled Common.toggleNavigationBar=function(indexNavigationBar) { var NavToggle = document.getElementById("NavToggle" + indexNavigationBar); var NavFrame = document.getElementById("NavFrame" + indexNavigationBar); if (!NavFrame || !NavToggle) { return false; } // if shown now if (NavToggle.firstChild.data == Common.NavigationBarHide) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) ) { NavChild.style.display = 'none'; } if ( $(NavChild).hasClass( 'NavContent') ) { NavChild.style.display = 'none'; } } NavToggle.firstChild.data = Common.NavigationBarShow; // if hidden now } else if (NavToggle.firstChild.data == Common.NavigationBarShow) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ($(NavChild).hasClass( 'NavPic')) { NavChild.style.display = 'block'; } if ($(NavChild).hasClass( 'NavContent')) { NavChild.style.display = 'block'; } } NavToggle.firstChild.data = Common.NavigationBarHide; } } // adds show/hide-button to navigation bars Common.createNavigationBarToggleButton=function() { var indexNavigationBar = 0; // iterate over all < div >-elements var divs = document.getElementsByTagName("div"); for (var i = 0; NavFrame = divs[i]; i++) { // if found a navigation bar if ($(NavFrame).hasClass( "NavFrame")) { indexNavigationBar++; var NavToggle = document.createElement("a"); NavToggle.className = 'NavToggle'; NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar); NavToggle.setAttribute('href', 'javascript:Common.toggleNavigationBar(' + indexNavigationBar + ');'); var isCollapsed = $(NavFrame).hasClass( "collapsed" ); /* * Check if any children are already hidden. This loop is here for backwards compatibility: * the old way of making NavFrames start out collapsed was to manually add style="display:none" * to all the NavPic/NavContent elements. Since this was bad for accessibility (no way to make * the content visible without JavaScript support), the new recommended way is to add the class * "collapsed" to the NavFrame itself, just like with collapsible tables. */ for (var NavChild = NavFrame.firstChild; NavChild != null && !isCollapsed; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) || $(NavChild).hasClass( 'NavContent' ) ) { if ( NavChild.style.display == 'none' ) { isCollapsed = true; } } } if (isCollapsed) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) || $(NavChild).hasClass( 'NavContent' ) ) { NavChild.style.display = 'none'; } } } var NavToggleText = document.createTextNode(isCollapsed ? Common.NavigationBarShow : Common.NavigationBarHide); NavToggle.appendChild(NavToggleText); // Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked) for(var j=0; j < NavFrame.childNodes.length; j++) { if ($(NavFrame.childNodes[j]).hasClass( "NavHead")) { $(NavFrame.childNodes[j]).children('a.NavToggle#NavToggle' + indexNavigationBar).each(function(i,element){ $(element).remove(); }); NavFrame.childNodes[j].appendChild(NavToggle); } } NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar); } } } $(Common.createNavigationBarToggleButton ); // Wyszukiwanie Google na stronach podręczników Common.googleSearchInitialized = false; Common.insertGoogleSearch=function() { if ( mw.config.get('wgNamespaceNumber') != 0 || Common.googleSearchInitialized ) { return; } Common.googleSearchInitialized = true; var google = "http://www.google.com/custom?sa=Google+Search&domains=pl.wikibooks.org/wiki/PAGE&sitesearch=pl.wikibooks.org/wiki/PAGE"; var ul = jQuery('#p-tb ul')[0]; if (!ul) { return; } var link = document.createElement('a'); var book = Common.pageInfo.book; if ( book.length == 1 || book.indexOf('++') != -1 || encodeURIComponent(book) != book ) { google = "http://www.google.com/custom?sa=Google+Search&domains=pl.wikibooks.org/wiki/&sitesearch=pl.wikibooks.org/wiki/&q=%22PAGE%22" } link.href = google.replace(/PAGE/g, encodeURIComponent(book)); link.appendChild(document.createTextNode("Szukaj w podręczniku")); var li = document.createElement('li'); li.id = "google-trick-search"; li.appendChild(link); $(ul).children('li#google-trick-search').each(function(i,element){ $(element).remove(); }); ul.insertBefore(li, ul.firstChild); } $(Common.insertGoogleSearch); /*Funkcja do liczenia, czy nastąpiło przepełnienie poziome lub pionowe*/ Common.PobierzSzerokoscPaskaPrzewijania=function(x_box_right){ var div = $('<div style="width:50px;height:50px;overflow:hidden;position:absolute;top:-200px;left:-200px;"><div style="height:100px;"></div></div>'); $('body').append(div); var w1 = $('div', div)["inner"+((x_box_right=="y")?"Width":"Height")](); div.css('overflow-'+(x_box_right||"y"), 'scroll'); var w2 = $('div', div)["inner"+((x_box_right=="y")?"Width":"Height")](); $(div).remove(); return (w1 - w2); } /*Funkcje do obsługi pasków przewijania*/ Common.ScrollBarOverflow=function(){ $('*.mw-overflow-x, *.mw-overflow-y').each(function(i,element_g){ /*start overflow*/ var comp=window.getComputedStyle(element_g, null); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var overflow=comp.getPropertyValue("overflow"); var overflow_x=$(element_g).hasClass('mw-overflow-x'); if(overflow_x){ var overflowX=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); if((overflowX)&&(overflowX=="auto")){ element_g.classList.remove("mw-scrollbar-overflow-x"); const hasHorizontalScrollbar = element_g.scrollWidth > element_g.clientWidth; // true lub false if(hasHorizontalScrollbar){ element_g.classList.add("mw-scrollbar-overflow-x"); } } } var overflow_y=$(element_g).hasClass('mw-overflow-y'); if(overflow_y){ var overflowY=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflowY)&&(overflowY=="auto")){ element_g.classList.remove("mw-scrollbar-overflow-y"); const hasVerticalScrollbar = element_g.scrollHeight > element_g.clientHeight; // true lub false if(hasVerticalScrollbar){ element_g.classList.add("mw-scrollbar-overflow-y"); } } } /*koniec overflow*/ }); } $(function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); $(window).on('scroll', function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); $(window).on('resize', function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); /*Funkcja symulująca właściwości position:sticky, wszędzie tam, gdzie nie można go użyć.*/ Common.StickyXY=function(){ $('*.mw-sticky-x, *.mw-sticky-y').each(function(i,element_g){ var comp=window.getComputedStyle(element_g, null); function FunStickyXY(height,top,bottom,width_box,left_box,right_box,x_box,x_box_right){ var pozycje_paskow=new Array(); $(element_g).find('*').each(function(i,element){ var comp=window.getComputedStyle(element, null); var overflow=comp.getPropertyValue("overflow"); var overflow_x=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); var overflow_y=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflow_x=="auto")||(overflow_x=="scroll")||(overflow_y=="auto")||(overflow_y=="scroll")){ pozycje_paskow.push(new Array(element,element.scrollTop,element.scrollLeft)); } }); var height_sticky=0; $('html.client-js.vector-sticky-header-enabled body.skin-vector-search-vue.vector-sticky-header-visible header.vector-sticky-header').each(function(i,el){ var rect_sticky=el.getBoundingClientRect(); height_sticky=parseInt(rect_sticky[height]); }); var StickyXYTopOld=$(element_g).data('stickyXYOld-'+top);var StickyXYBottomOld=$(element_g).data('stickyXYOld-'+bottom); if(StickyXYTopOld===undefined){ var topold_war=parseFloat(element_g.style[top]); $(element_g).data('stickyXYOld-'+top,((!isNaN(topold_war))?topold_war:0)); } if(StickyXYBottomOld===undefined){ var bottomold_war=parseFloat(element_g.style[bottom]); $(element_g).data('stickyXYOld-'+bottom,((!isNaN(bottomold_war))?bottomold_war:0)); } var topold=$(element_g).data('stickyXYOld-'+top)+height_sticky+5; var margintop=parseFloat(comp.getPropertyValue("margin-"+top)); margintop=((!isNaN(margintop))?margintop:0); var marginbottom=parseFloat(comp.getPropertyValue("margin-"+bottom)); marginbottom=((!isNaN(marginbottom))?marginbottom:0); var przodek_height=undefined; element_g.style[height]="auto"; element_g.style["max"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[top]="auto"; element_g.style[bottom]="auto"; if(width_box!=null){ element_g.style[width_box]="auto"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[left_box]="auto"; element_g.style[right_box]="0"; $(element_g).find('.mw-not-overflow-'+x_box+'.mw-overflow-'+x_box).each(function(i,element){ element.style[width_box]="auto"; }); } var parents_node_fun=$(element_g).parents('.mw-parent-node').first(); if((parents_node_fun==null)||(parents_node_fun.length==0)){return;} var width_rodzic=null; var rodzic_element=undefined; var comp_rodz; parents_node_fun.each(function(i,element){ comp_rodz=window.getComputedStyle(element,null); przodek_height=parseFloat(comp_rodz.getPropertyValue([height])); width_rodzic=width_box?parseFloat(comp_rodz.getPropertyValue([width_box])):null; rodzic_element=element; }); var height_box_real=parseFloat(comp.getPropertyValue(height)); var rect_dziecko=element_g.getBoundingClientRect(); var wys=document.documentElement["client"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]; var rect_rodzic; parents_node_fun.each(function(i,element){ rect_rodzic=element.getBoundingClientRect(); }); var top_ab=rect_rodzic[top]-margintop; var bottom_ab=(wys-rect_rodzic[bottom])-marginbottom; var maxheight=Math.min(przodek_height,wys-((rect_rodzic[top]>=0)?(rect_rodzic[top]):(0))-((bottom_ab>=0)?(bottom_ab):(0)))-(((top_ab<=0)?(topold):(Math.max(0,topold-top_ab)))+((bottom_ab<=0)?($(element_g).data('stickyXYOld-'+bottom)+5):(Math.max(0,$(element_g).data('stickyXYOld-'+bottom)+5-bottom_ab)))+marginbottom+margintop); element_g.style["max"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(((maxheight>=0)?maxheight:0)*(height_box_real/rect_dziecko[height]))+"px"; element_g.style[height]=(element_g["offset"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))])+"px"; var top_obj=(((top_ab>=0)?0:(-top_ab)))+((top_ab<=0)?(topold):(Math.max(0,topold-top_ab))); element_g.style[top]=top_obj+"px"; element_g.style[bottom]="auto"; if(width_box!=null){ element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; rodzic_element.style.position="static"; rodzic_element.style.overflow="hidden"; var width_box_real=parseFloat(comp.getPropertyValue(width_box)); var rect_dziecko=element_g.getBoundingClientRect(); if(parseInt(width_box_real)>parseInt(rect_dziecko[width_box])){ if(width_box=="width"){ element_g.classList.remove('mw-scrollbar-overflow-x'); }else{ element_g.classList.remove('mw-scrollbar-overflow-y'); } if(rect_dziecko[width_box]>width_rodzic){ if(width_box=="width"){ element_g.classList.add('mw-scrollbar-overflow-x'); }else{ element_g.classList.add('mw-scrollbar-overflow-y'); } } var width_box_real=parseFloat(comp.getPropertyValue(width_box)); var margin_all=parseFloat(comp.getPropertyValue("margin-"+left_box))+parseFloat(comp.getPropertyValue("margin-"+right_box)); margin_all+=parseFloat(comp_rodz.getPropertyValue("padding-"+left_box))+parseFloat(comp_rodz.getPropertyValue("padding-"+right_box)); var dlugosc=(width_rodzic-margin_all); dlugosc=((dlugosc>=0)?dlugosc:0); element_g.style.whiteSpace="nowrap"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width_box]))+"px"; element_g.style[width_box]=width_box_real+"px"; Common.ScrollBarOverflow(); $(element_g).find('.mw-overflow-'+x_box+'.mw-not-overflow-'+x_box+'.mw-scrollbar-overflow-'+x_box).each(function(i,element){ var comp_element=window.getComputedStyle(element, null) element.style[width_box]=(element["scroll"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]+Common.PobierzSzerokoscPaskaPrzewijania(x_box_right)+parseFloat(comp_element.getPropertyValue('padding-'+left_box))+parseFloat(comp_element.getPropertyValue('padding-'+right_box)))+"px"; element.classList.remove('mw-scrollbar-overflow-'+x_box_right); }); element_g.style.whiteSpace="normal"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[width_box]="auto"; var rect_dziecko=element_g.getBoundingClientRect(); var width_box_real=parseFloat(comp.getPropertyValue(width_box)); element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width_box]))+"px"; element_g.style[width_box]=width_box_real+"px"; element_g.style[left_box]="0"; element_g.style[right_box]="auto"; rodzic_element.style.position="relative"; }else{ element_g.style.whiteSpace="nowrap"; var szerokosc_box=rect_dziecko[width_box]; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(szerokosc_box)+"px"; element_g.style[width_box]=(szerokosc_box)+"px"; Common.ScrollBarOverflow(); $(element_g).find('.mw-overflow-'+x_box+'.mw-not-overflow-'+x_box+'.mw-scrollbar-overflow-'+x_box).each(function(i,element){ var comp_element=window.getComputedStyle(element, null); element.style[width_box]=(element["scroll"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]+Common.PobierzSzerokoscPaskaPrzewijania(x_box_right)+parseFloat(comp_element.getPropertyValue('padding-'+left_box))+parseFloat(comp_element.getPropertyValue('padding-'+right_box)))+"px"; element.classList.remove('mw-scrollbar-overflow-'+x_box_right); }); element_g.style.whiteSpace="normal"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[width_box]="auto"; var rect_dziecko=element_g.getBoundingClientRect(); var szerokosc_box=rect_dziecko[width_box]; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(szerokosc_box)+"px"; element_g.style[width_box]=(szerokosc_box)+"px"; var szerokosc=rect_dziecko[width_box]+parseFloat(comp.getPropertyValue("margin-"+left_box))+parseFloat(comp.getPropertyValue("margin-"+right_box)); if(parseInt(szerokosc)>parseInt(width_rodzic)){ element_g.style[right_box]="0"; element_g.style[left_box]="auto"; rodzic_element.style.overflow="visible"; }else{ element_g.style[left_box]="0"; element_g.style[right_box]="auto"; rodzic_element.style.position="relative"; } } } element_g.style[height]="auto"; element_g.style[height]=(element_g["offset"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))])+"px"; Common.ScrollBarOverflow(); for(var i in pozycje_paskow){ pozycje_paskow[i][0].scrollTop=pozycje_paskow[i][1]; pozycje_paskow[i][0].scrollLeft=pozycje_paskow[i][2]; } } element_g.classList.add('mw-sticky-js'); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var visibility=comp.getPropertyValue("visibility"); if(visibility=="hidden"){return;} var position=comp.getPropertyValue("position"); if(position!="absolute"){return;} var sticky_x=$(element_g).hasClass('mw-sticky-x'); var sticky_y=$(element_g).hasClass('mw-sticky-y'); if((sticky_x)&&(!sticky_y)){ var str=$(element_g).parents('.strona_górna, .strona_dolna').first(); if(str.hasClass('strona_dolna')){ FunStickyXY("width","left","right","height","top","bottom","y","x"); }else if(str.hasClass('strona_górna')){ FunStickyXY("width","left","right","height","bottom","top","x","y"); } }else if((!sticky_x)&&(sticky_y)){ var str=$(element_g).parents('.strona_prawa, .strona_lewa').first(); if(str.hasClass('strona_prawa')){ FunStickyXY("height","top","bottom","width","left","right","x","y"); }else if(str.hasClass('strona_lewa')){ FunStickyXY("height","top","bottom","width","right","left","x","y"); } }else{ FunStickyXY("width","left","right",null); FunStickyXY("height","top","bottom",null); } }); } $(function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); $(window).on('scroll', function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); $(window).on('resize', function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); /*Funkcja do ustawiania maksymalnego rozmiaru dziecka, względem rodzica, przy position:absolute*/ Common.OptimalXY=function(){ $('*.mw-optimal-x, *.mw-optimal-y').each(function(i,element_g){ var comp=window.getComputedStyle(element_g, null); function FunOptimalXY(width,left,right){ var pozycje_paskow=new Array(); $(element_g).find('*').each(function(i,element){ var comp=window.getComputedStyle(element, null); var overflow=comp.getPropertyValue("overflow"); var overflow_x=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); var overflow_y=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflow_x=="auto")||(overflow_x=="scroll")||(overflow_y=="auto")||(overflow_y=="scroll")){ pozycje_paskow.push(new Array(element,element.scrollTop,element.scrollLeft)); } }); var width_rodzic=null; var rodzic_node; var comp_rodz; $(element_g).parents('.mw-parent-node').first().each(function(i,element){ comp_rodz=window.getComputedStyle(element,null); width_rodzic=parseFloat(comp_rodz.getPropertyValue([width])); rodzic_node=element; }); if((width_rodzic!=null)&&(!isNaN(width_rodzic))){ element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; var width_box_real=parseFloat(comp.getPropertyValue(width)); var rect_dziecko=element_g.getBoundingClientRect(); if(width=="width"){ element_g.classList.remove('mw-scrollbar-overflow-x'); }else{ element_g.classList.remove('mw-scrollbar-overflow-y'); } if(parseInt(width_box_real)>parseInt(rect_dziecko[width])){ var rect_dziecko=element_g.getBoundingClientRect(); if(rect_dziecko[width]>width_rodzic){ if(width=="width"){ element_g.classList.add('mw-scrollbar-overflow-x'); }else{ element_g.classList.add('mw-scrollbar-overflow-y'); } } var width_box_real=parseFloat(comp.getPropertyValue(width)); var margin_all=parseFloat(comp.getPropertyValue("margin-"+left))+parseFloat(comp.getPropertyValue("margin-"+right)); margin_all+=parseFloat(comp_rodz.getPropertyValue("padding-"+left))+parseFloat(comp_rodz.getPropertyValue("padding-"+right)); var dlugosc=(width_rodzic-margin_all); dlugosc=((dlugosc>=0)?dlugosc:0); element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width]))+"px"; }else{ element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(rect_dziecko[width])+"px"; } var str=$(element_g).parents('.strona_prawa, .strona_lewa, .strona_górna, .strona_dolna').first(); if(!str.hasClass('strona_start-nawigacja_boksy')){ var rect_dziecko=element_g.getBoundingClientRect(); var szerokosc=rect_dziecko[width]+parseFloat(comp.getPropertyValue("margin-"+left))+parseFloat(comp.getPropertyValue("margin-"+right)); if(parseInt(szerokosc)>parseInt(width_rodzic)){ str.css('position','static'); }else{ str.css('position','relative'); } } } for(var i in pozycje_paskow){ pozycje_paskow[i][0].scrollTop=pozycje_paskow[i][1]; pozycje_paskow[i][0].scrollLeft=pozycje_paskow[i][2]; } }; element_g.classList.add('mw-optimal-js'); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var visibility=comp.getPropertyValue("visibility"); if(visibility=="hidden"){return;} var position=comp.getPropertyValue("position"); if(position!="absolute"){return;} var optimal_x=$(element_g).hasClass('mw-optimal-x'); var optimal_y=$(element_g).hasClass('mw-optimal-y'); if(optimal_x){ FunOptimalXY("width","left","right"); } if(optimal_y){ FunOptimalXY("height","top","bottom"); } }); } $(function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); $(window).on("scroll",function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); $(window).on("resize",function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); /*Uruchamianie dodatkowych funkcji, niż standardowe, w href w linkach rozwijanej tabeli TABLE lub ramki DIV, jeśli ona generuje zwiększenie rozmiarów, aby w rodzicu pojawił się pasek przewijania, z dodatkowymi opcjami generowanej przez arkusz kalkulacyjny CSS*/ Common.RamkiTableIDiv=function(obiekt,id_tabeli_lub_ramki,id_nazwa_a,fun_obiektu){ $(obiekt).each(function(i,element_f){ return new Promise(function(resolve,reject){ var czas=0; function Czekaj(){ if(czas>30000){ reject(); } var collapsebutton=$(element_f).find('a#'+id_nazwa_a+i); if((collapsebutton!==null)&&(collapsebutton.length>0)){ var tabele_lub_ramki=collapsebutton.parents('#'+id_tabeli_lub_ramki+i); if((tabele_lub_ramki===null)||(tabele_lub_ramki.length==0)){reject();} resolve(i); }else{ czas+=100; setTimeout(Czekaj,100); } } Czekaj(); }).then(function(i){ $('*.mw-overflow-x a#'+id_nazwa_a+i+', *.mw-overflow-y a#'+id_nazwa_a+i).each(function(j,element_g){ var href=element_g.getAttribute('href'); if((href!=null)&&(href!="")){ var col="[\\s;\\(\\,]*javascript:"+fun_obiektu.replace(/\./g,"\\.")+"\\s*\\(\\s*"+i+"\\s*\\)[\\s;\\)\\,]*"; var re_frame = new RegExp(col,'g'); var re_javascript=new RegExp("^[\\s;]*javascript:"); if((re_javascript.test(href))&&(re_frame.test(href))){ element_g.setAttribute('href',href.replace(/[;\s]*$/g,"")+';javascript:Common.ScrollBarOverflow();javascript:Common.StickyXY();javascript:Common.OptimalXY()') } } }); }).catch(function(){}); }); }; /*Dla menu rozwijanego tabeli TABLE zdefiniowanej na stronie MediaWiki:Common.js*/ Common.RamkiTableIDiv("table.collapsible",'collapsibleTable','collapseButton','Common.collapseTable'); /*Dla menu rozwijanej ramki DIV zdefiniowanej na stronie MediaWiki:Common.js*/ Common.RamkiTableIDiv("div.NavFrame",'NavFrame','NavToggle','Common.toggleNavigationBar'); /*Koniec dodatkowych funkcji*/ /*Uruchamianie dodatkowych zdarzeń do Common.StickyXY i OptimalXY*/ Common.ZdarzeniaDodatkoweFunkcyjneXY=function(css,fun_zdarz){ var fun_css=$(css); fun_css.on('mouseenter',fun_zdarz); fun_css.on('mouseleave',fun_zdarz); fun_css.on('transitionstart',fun_zdarz); fun_css.on('webkittransitionstart',fun_zdarz); fun_css.on('moztransitionstart',fun_zdarz); fun_css.on('otransitionstart',fun_zdarz); fun_css.on('transitionrun',fun_zdarz); fun_css.on('webkittransitionrun',fun_zdarz); fun_css.on('moztransitionrun',fun_zdarz); fun_css.on('otransitionrun',fun_zdarz); fun_css.on('transitioncancel',fun_zdarz); fun_css.on('webkittransitioncancel',fun_zdarz); fun_css.on('moztransitioncancel',fun_zdarz); fun_css.on('otransitioncancel',fun_zdarz); fun_css.on('transitionend',fun_zdarz); fun_css.on('webkittransitionend',fun_zdarz); fun_css.on('moztransitionend',fun_zdarz); fun_css.on('otransitionend',fun_zdarz); }; Common.ZdarzeniaDodatkoweFunkcyjneXY("*.mw-sticky-x, *.mw-sticky-y",Common.StickyXY); Common.ZdarzeniaDodatkoweFunkcyjneXY('*.mw-optimal-x, *.mw-optimal-y',Common.OptimalXY); /*Koniec dodatkowych zdarzeń*/ /*Program do obsługi szablonu StronaStart i jego pokrewnych książkowych*/ Common.StronaStart=function(){ var elements=$('.strona_start .strona .ciało_zawartości > .menu > .menu_boks'); elements.parent().show(); $('.strona_start').find('.strona_lewa .nawigacja_boksy, .strona_prawa .nawigacja_boksy').each(function(i,element){ $(element).css('visibility',"hidden"); }); $('.strona_start').find('.strona_lewa .nawigacja_spis, .strona_prawa .nawigacja_spis').each(function(i,element){ var czy_visible=$(element).css('visibility'); $(element).css('visibility',"visible"); var str=$(element).parents('.strona_prawa, .strona_lewa').first(); str.css('position','relative'); str.addClass('strona_start-nawigacja_spis'); str.removeClass('strona_start-nawigacja_boksy'); if(czy_visible=="hidden"){ $(Common.ScrollBarOverflow); $(Common.StickyXY); } }); function StronaStartFun(){ var id=this; $(id).parents('.strona_start').first().find('.strona .ciało_zawartości > .menu > .menu_boks').children().each(function(i,element){ var display=$(element).css('display'); if(display=="none"){ $(element).css('display',"block"); }else{ $(element).css('display',"none"); } }); $(id).parents('.strona_start').first().find('.strona_lewa, .strona_prawa').children().each(function(i,element){ var visibility=window.getComputedStyle(element, null).getPropertyValue('visibility'); if(visibility=="hidden"){ $(element).css('visibility',"visible"); var str=$(element).parents('.strona_prawa, .strona_lewa').first(); if($(element).hasClass('nawigacja_boksy')){ str.css('position','static'); str.addClass('strona_start-nawigacja_boksy'); str.removeClass('strona_start-nawigacja_spis'); $(Common.ScrollBarOverflow); $(Common.OptimalXY); }else if($(element).hasClass('nawigacja_spis')){ str.css('position','relative'); str.addClass('strona_start-nawigacja_spis'); str.removeClass('strona_start-nawigacja_boksy'); $(Common.ScrollBarOverflow); $(Common.StickyXY); } }else{ $(element).css('visibility',"hidden"); } }); } elements.on('click',StronaStartFun); } $(Common.StronaStart); 1x8otwejzoq7qkdojesx4z5rr3fbu5i 437165 437163 2022-08-07T18:57:39Z Persino 2851 javascript text/javascript mw.loader.load( '//pl.wikibooks.org/w/index.php?action=raw&ctype=text/javascript&title=Wikipedysta:Persino/Gadget-StronicowyParser.js', 'text/javascript', true ); /**/ /* Umieszczony tutaj kod JavaScript zostanie załadowany przez każdego użytkownika, podczas każdego ładowania strony. */ // Frame Busting if (top != self) top.location.href = self.location.href; /* * Zmienna Common.pageInfo, jego elementy, instrukcja obsługi: * Common.pageInfo.namespace numer przestrzeni nazw (równe wgNamespaceNumber) * Common.pageInfo.name pełna nazwa strony * Common.pageInfo.title tytuł strony, czyli ostatnia część po '/' albo jest równe pageInfo.name, gdy nigdzie nie występuje slash * Common.pageInfo.book tytuł książki * Common.pageInfo.action akcja taka jaka jest w adresie URL pod "action=", w przypadku normalnego czytania strony, action jest równe "get" * Common.pageInfo.diff null w przypadku, gdy nie porównujemy wersji, w przeciwnym wypadku wartość występującą w adresie URL */ /*Przestrzeń nazw: Common, zdefiniowanym za pomocą tablicy*/ var Common=new Array(); /*Funkcje w przestrzeni nazw Common*/ Common.Naglowek=function(){ /* Skrypt odpowiedzialny za wyświetlanie szablonu Nagłówek [[Szablon:Nagłówek]] */ var hideAll = document.getElementById('mójNagłówekUkryj'); var noFooter = false; var footers = 0; var tags = document.getElementsByTagName('div'); for (var i = 0; i < tags.length; i++) { var el=tags[i].getAttribute("id"); if (el=='mojaStopka') footers++; else if (hideAll && (el=='mójNagłówek')) { tags[i].innerHTML=""; noFooter=true; } } if (noFooter) return; var footer = document.getElementById('mojaStopka'); if ((footer !== null) && (footers==1)) { var bodyContent = document.getElementById('bodyContent'); if (bodyContent !== null) { var s0=document.getElementById('mojaStopka0'); var s1=document.getElementById('mojaStopka1'); if ((s1 !== null) || ((s0 === null) && (bodyContent.innerHTML.length>8000))){ var strona=document.getElementById('strona'); if(strona!==null){ strona.appendChild(footer); }else{ var catlinks=document.getElementById('catlinks'); if(catlinks !== null){ bodyContent.insertBefore(footer,catlinks); }else{ bodyContent.appendChild(footer); } } } } } /* Koniec skryptu odpowiedzialnego za wyświetlanie szablonu Nagłówek [[Szablon:Nagłówek]] */ }; $(Common.Naglowek); /*Informacje o danej stronie*/ Common.PageInfoInit=function(){ var _g = /_/g; this.name = mw.config.get('wgPageName').replace(/_/g, ' '); this.namespace = mw.config.get('wgNamespaceNumber'); var i = this.name.search(/\/[^\/]*$/g); this.title = this.name.slice(i + 1); this.book = this.name.replace(/\/.*/g, ""); if ( document.URL.search("//pl.wikibooks.org/w/index.php") != -1 ) { re = /\&diff=/g; this.diff = re.test(document.URL); re = /\&action=[^\&]*/g; this.action = document.URL.match(re); if ( this.action === null ) { this.action = 'get'; } else { this.action = this.action[0].slice(8, this.action[0].length); } } else { this.diff = null; this.action = 'get'; } } Common.pageInfo = new Common.PageInfoInit(); /** Collapsible tables ********************************************************* * * Description: Allows tables to be collapsed, showing only the header. See * [[en:Wikipedia:NavFrame]]. * Maintainers: [[User:R. Koot]] */ Common.autoCollapse = 2; Common.collapseCaption = "ukryj"; Common.expandCaption = "pokaż"; Common.collapseTable=function( tableIndex ) { var Button = document.getElementById( "collapseButton" + tableIndex ); var Table = document.getElementById( "collapsibleTable" + tableIndex ); if ( !Table || !Button ) { return false; } var Rows = Table.rows; if ( Button.firstChild.data == Common.collapseCaption ) { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = "none"; } Button.firstChild.data = Common.expandCaption; } else { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = Rows[0].style.display; } Button.firstChild.data = Common.collapseCaption; } } Common.createCollapseButtons=function() { var tableIndex = 0; var NavigationBoxes = new Object(); var Tables = document.getElementsByTagName( "table" ); for ( var i = 0; i < Tables.length; i++ ) { if ( $(Tables[i]).hasClass( "collapsible" ) ) { /* only add button and increment count if there is a header row to work with */ var HeaderRow = Tables[i].getElementsByTagName( "tr" )[0]; if (!HeaderRow) continue; var Header = HeaderRow.getElementsByTagName( "th" )[0]; if (!Header) continue; NavigationBoxes[ tableIndex ] = Tables[i]; Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex ); var Button = document.createElement( "span" ); var ButtonLink = document.createElement( "a" ); var ButtonText = document.createTextNode( Common.collapseCaption ); Button.style.styleFloat = "right"; Button.style.cssFloat = "right"; Button.style.fontWeight = "normal"; Button.style.textAlign = "right"; Button.style.width = "6em"; ButtonLink.style.color = Header.style.color; ButtonLink.setAttribute( "id", "collapseButton" + tableIndex ); ButtonLink.setAttribute( "href", "javascript:Common.collapseTable(" + tableIndex + ");" ); ButtonLink.appendChild( ButtonText ); Button.appendChild( document.createTextNode( "[" ) ); Button.appendChild( ButtonLink ); Button.appendChild( document.createTextNode( "]" ) ); $(Header.childNodes[0]).has('a#collapseButton' + tableIndex).each(function(i,element){ $(element).remove(); }); Header.insertBefore( Button, Header.childNodes[0]); tableIndex++; } } for ( var i = 0; i < tableIndex; i++ ) { if ( $(NavigationBoxes[i]).hasClass( "collapsed" ) || ( tableIndex >= Common.autoCollapse && $(NavigationBoxes[i]).hasClass( "Common.autoCollapse" ) ) ) { collapseTable( i ); } else if ( $(NavigationBoxes[i]).hasClass( "innercollapse" ) ) { var element = NavigationBoxes[i]; while (element = element.parentNode) { if ( $(element).hasClass( "outercollapse" ) ) { collapseTable ( i ); break; } } } } } $(Common.createCollapseButtons ); /** Dynamic Navigation Bars (experimental) ************************************* * * Description: See [[Wikipedia:NavFrame]]. * Maintainers: UNMAINTAINED */ // set up the words in your language Common.NavigationBarHide = '[' + Common.collapseCaption + ']'; Common.NavigationBarShow = '[' + Common.expandCaption + ']'; // shows and hides content and picture (if available) of navigation bars // Parameters: // indexNavigationBar: the index of navigation bar to be toggled Common.toggleNavigationBar=function(indexNavigationBar) { var NavToggle = document.getElementById("NavToggle" + indexNavigationBar); var NavFrame = document.getElementById("NavFrame" + indexNavigationBar); if (!NavFrame || !NavToggle) { return false; } // if shown now if (NavToggle.firstChild.data == Common.NavigationBarHide) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) ) { NavChild.style.display = 'none'; } if ( $(NavChild).hasClass( 'NavContent') ) { NavChild.style.display = 'none'; } } NavToggle.firstChild.data = Common.NavigationBarShow; // if hidden now } else if (NavToggle.firstChild.data == Common.NavigationBarShow) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ($(NavChild).hasClass( 'NavPic')) { NavChild.style.display = 'block'; } if ($(NavChild).hasClass( 'NavContent')) { NavChild.style.display = 'block'; } } NavToggle.firstChild.data = Common.NavigationBarHide; } } // adds show/hide-button to navigation bars Common.createNavigationBarToggleButton=function() { var indexNavigationBar = 0; // iterate over all < div >-elements var divs = document.getElementsByTagName("div"); for (var i = 0; NavFrame = divs[i]; i++) { // if found a navigation bar if ($(NavFrame).hasClass( "NavFrame")) { indexNavigationBar++; var NavToggle = document.createElement("a"); NavToggle.className = 'NavToggle'; NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar); NavToggle.setAttribute('href', 'javascript:Common.toggleNavigationBar(' + indexNavigationBar + ');'); var isCollapsed = $(NavFrame).hasClass( "collapsed" ); /* * Check if any children are already hidden. This loop is here for backwards compatibility: * the old way of making NavFrames start out collapsed was to manually add style="display:none" * to all the NavPic/NavContent elements. Since this was bad for accessibility (no way to make * the content visible without JavaScript support), the new recommended way is to add the class * "collapsed" to the NavFrame itself, just like with collapsible tables. */ for (var NavChild = NavFrame.firstChild; NavChild != null && !isCollapsed; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) || $(NavChild).hasClass( 'NavContent' ) ) { if ( NavChild.style.display == 'none' ) { isCollapsed = true; } } } if (isCollapsed) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) || $(NavChild).hasClass( 'NavContent' ) ) { NavChild.style.display = 'none'; } } } var NavToggleText = document.createTextNode(isCollapsed ? Common.NavigationBarShow : Common.NavigationBarHide); NavToggle.appendChild(NavToggleText); // Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked) for(var j=0; j < NavFrame.childNodes.length; j++) { if ($(NavFrame.childNodes[j]).hasClass( "NavHead")) { $(NavFrame.childNodes[j]).children('a.NavToggle#NavToggle' + indexNavigationBar).each(function(i,element){ $(element).remove(); }); NavFrame.childNodes[j].appendChild(NavToggle); } } NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar); } } } $(Common.createNavigationBarToggleButton ); // Wyszukiwanie Google na stronach podręczników Common.googleSearchInitialized = false; Common.insertGoogleSearch=function() { if ( mw.config.get('wgNamespaceNumber') != 0 || Common.googleSearchInitialized ) { return; } Common.googleSearchInitialized = true; var google = "http://www.google.com/custom?sa=Google+Search&domains=pl.wikibooks.org/wiki/PAGE&sitesearch=pl.wikibooks.org/wiki/PAGE"; var ul = jQuery('#p-tb ul')[0]; if (!ul) { return; } var link = document.createElement('a'); var book = Common.pageInfo.book; if ( book.length == 1 || book.indexOf('++') != -1 || encodeURIComponent(book) != book ) { google = "http://www.google.com/custom?sa=Google+Search&domains=pl.wikibooks.org/wiki/&sitesearch=pl.wikibooks.org/wiki/&q=%22PAGE%22" } link.href = google.replace(/PAGE/g, encodeURIComponent(book)); link.appendChild(document.createTextNode("Szukaj w podręczniku")); var li = document.createElement('li'); li.id = "google-trick-search"; li.appendChild(link); $(ul).children('li#google-trick-search').each(function(i,element){ $(element).remove(); }); ul.insertBefore(li, ul.firstChild); } $(Common.insertGoogleSearch); /*Funkcja do liczenia, czy nastąpiło przepełnienie poziome lub pionowe*/ Common.PobierzSzerokoscPaskaPrzewijania=function(x_box_right){ var div = $('<div style="width:50px;height:50px;overflow:hidden;position:absolute;top:-200px;left:-200px;"><div style="height:100px;"></div></div>'); $('body').append(div); var w1 = $('div', div)["inner"+((x_box_right=="y")?"Width":"Height")](); div.css('overflow-'+(x_box_right||"y"), 'scroll'); var w2 = $('div', div)["inner"+((x_box_right=="y")?"Width":"Height")](); $(div).remove(); return (w1 - w2); } /*Funkcje do obsługi pasków przewijania*/ Common.ScrollBarOverflow=function(){ $('*.mw-overflow-x, *.mw-overflow-y').each(function(i,element_g){ /*start overflow*/ var comp=window.getComputedStyle(element_g, null); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var overflow=comp.getPropertyValue("overflow"); var overflow_x=$(element_g).hasClass('mw-overflow-x'); if(overflow_x){ var overflowX=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); if((overflowX)&&(overflowX=="auto")){ element_g.classList.remove("mw-scrollbar-overflow-x"); const hasHorizontalScrollbar = element_g.scrollWidth > element_g.clientWidth; // true lub false if(hasHorizontalScrollbar){ element_g.classList.add("mw-scrollbar-overflow-x"); } } } var overflow_y=$(element_g).hasClass('mw-overflow-y'); if(overflow_y){ var overflowY=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflowY)&&(overflowY=="auto")){ element_g.classList.remove("mw-scrollbar-overflow-y"); const hasVerticalScrollbar = element_g.scrollHeight > element_g.clientHeight; // true lub false if(hasVerticalScrollbar){ element_g.classList.add("mw-scrollbar-overflow-y"); } } } /*koniec overflow*/ }); } $(function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); $(window).on('scroll', function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); $(window).on('resize', function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); /*Funkcja symulująca właściwości position:sticky, wszędzie tam, gdzie nie można go użyć.*/ Common.StickyXY=function(){ $('*.mw-sticky-x, *.mw-sticky-y').each(function(i,element_g){ var comp=window.getComputedStyle(element_g, null); function FunStickyXY(height,top,bottom,width_box,left_box,right_box,x_box,x_box_right){ var pozycje_paskow=new Array(); $(element_g).find('*').each(function(i,element){ var comp=window.getComputedStyle(element, null); var overflow=comp.getPropertyValue("overflow"); var overflow_x=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); var overflow_y=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflow_x=="auto")||(overflow_x=="scroll")||(overflow_y=="auto")||(overflow_y=="scroll")){ pozycje_paskow.push(new Array(element,element.scrollTop,element.scrollLeft)); } }); var height_sticky=0; $('html.client-js.vector-sticky-header-enabled body.skin-vector-search-vue.vector-sticky-header-visible header.vector-sticky-header').each(function(i,el){ var rect_sticky=el.getBoundingClientRect(); height_sticky=parseInt(rect_sticky[height]); }); var StickyXYTopOld=$(element_g).data('stickyXYOld-'+top);var StickyXYBottomOld=$(element_g).data('stickyXYOld-'+bottom); if(StickyXYTopOld===undefined){ var topold_war=parseFloat(element_g.style[top]); $(element_g).data('stickyXYOld-'+top,((!isNaN(topold_war))?topold_war:0)); } if(StickyXYBottomOld===undefined){ var bottomold_war=parseFloat(element_g.style[bottom]); $(element_g).data('stickyXYOld-'+bottom,((!isNaN(bottomold_war))?bottomold_war:0)); } var topold=$(element_g).data('stickyXYOld-'+top)+height_sticky+5; var margintop=parseFloat(comp.getPropertyValue("margin-"+top)); margintop=((!isNaN(margintop))?margintop:0); var marginbottom=parseFloat(comp.getPropertyValue("margin-"+bottom)); marginbottom=((!isNaN(marginbottom))?marginbottom:0); var przodek_height=undefined; element_g.style[height]="auto"; element_g.style["max"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[top]="auto"; element_g.style[bottom]="auto"; if(width_box!=null){ element_g.style[width_box]="auto"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[left_box]="auto"; element_g.style[right_box]="0"; $(element_g).find('.mw-not-overflow-'+x_box+'.mw-overflow-'+x_box).each(function(i,element){ element.style[width_box]="auto"; }); } var parents_node_fun=$(element_g).parents('.mw-parent-node').first(); if((parents_node_fun==null)||(parents_node_fun.length==0)){return;} var width_rodzic=null; var rodzic_element=undefined; var comp_rodz; parents_node_fun.each(function(i,element){ comp_rodz=window.getComputedStyle(element,null); przodek_height=parseFloat(comp_rodz.getPropertyValue([height])); width_rodzic=width_box?parseFloat(comp_rodz.getPropertyValue([width_box])):null; rodzic_element=element; }); var height_box_real=parseFloat(comp.getPropertyValue(height)); var rect_dziecko=element_g.getBoundingClientRect(); var wys=document.documentElement["client"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]; var rect_rodzic; parents_node_fun.each(function(i,element){ rect_rodzic=element.getBoundingClientRect(); }); var top_ab=rect_rodzic[top]-margintop; var bottom_ab=(wys-rect_rodzic[bottom])-marginbottom; var maxheight=Math.min(przodek_height,wys-((rect_rodzic[top]>=0)?(rect_rodzic[top]):(0))-((bottom_ab>=0)?(bottom_ab):(0)))-(((top_ab<=0)?(topold):(Math.max(0,topold-top_ab)))+((bottom_ab<=0)?($(element_g).data('stickyXYOld-'+bottom)+5):(Math.max(0,$(element_g).data('stickyXYOld-'+bottom)+5-bottom_ab)))+marginbottom+margintop); element_g.style["max"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(((maxheight>=0)?maxheight:0)*(height_box_real/rect_dziecko[height]))+"px"; element_g.style[height]=(element_g["offset"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))])+"px"; var top_obj=(((top_ab>=0)?0:(-top_ab)))+((top_ab<=0)?(topold):(Math.max(0,topold-top_ab))); element_g.style[top]=top_obj+"px"; element_g.style[bottom]="auto"; if(width_box!=null){ element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; rodzic_element.style.position="static"; rodzic_element.style.overflow="hidden"; var width_box_real=parseFloat(comp.getPropertyValue(width_box)); var rect_dziecko=element_g.getBoundingClientRect(); if(parseInt(width_box_real)>parseInt(rect_dziecko[width_box])){ if(width_box=="width"){ element_g.classList.remove('mw-scrollbar-overflow-x'); }else{ element_g.classList.remove('mw-scrollbar-overflow-y'); } if(rect_dziecko[width_box]>width_rodzic){ if(width_box=="width"){ element_g.classList.add('mw-scrollbar-overflow-x'); }else{ element_g.classList.add('mw-scrollbar-overflow-y'); } } var width_box_real=parseFloat(comp.getPropertyValue(width_box)); var margin_all=parseFloat(comp.getPropertyValue("margin-"+left_box))+parseFloat(comp.getPropertyValue("margin-"+right_box)); margin_all+=parseFloat(comp_rodz.getPropertyValue("padding-"+left_box))+parseFloat(comp_rodz.getPropertyValue("padding-"+right_box)); var dlugosc=(width_rodzic-margin_all); dlugosc=((dlugosc>=0)?dlugosc:0); element_g.style.whiteSpace="nowrap"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width_box]))+"px"; element_g.style[width_box]=width_box_real+"px"; Common.ScrollBarOverflow(); $(element_g).find('.mw-overflow-'+x_box+'.mw-not-overflow-'+x_box+'.mw-scrollbar-overflow-'+x_box).each(function(i,element){ var comp_element=window.getComputedStyle(element, null) element.style[width_box]=(element["scroll"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]+Common.PobierzSzerokoscPaskaPrzewijania(x_box_right)+parseFloat(comp_element.getPropertyValue('padding-'+left_box))+parseFloat(comp_element.getPropertyValue('padding-'+right_box)))+"px"; element.classList.remove('mw-scrollbar-overflow-'+x_box_right); }); element_g.style.whiteSpace="normal"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[width_box]="auto"; var rect_dziecko=element_g.getBoundingClientRect(); var width_box_real=parseFloat(comp.getPropertyValue(width_box)); element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width_box]))+"px"; element_g.style[width_box]=width_box_real+"px"; element_g.style[left_box]="0"; element_g.style[right_box]="auto"; rodzic_element.style.position="relative"; }else{ element_g.style.whiteSpace="nowrap"; var szerokosc_box=rect_dziecko[width_box]; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(szerokosc_box)+"px"; element_g.style[width_box]=(szerokosc_box)+"px"; Common.ScrollBarOverflow(); $(element_g).find('.mw-overflow-'+x_box+'.mw-not-overflow-'+x_box+'.mw-scrollbar-overflow-'+x_box).each(function(i,element){ var comp_element=window.getComputedStyle(element, null); element.style[width_box]=(element["scroll"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]+Common.PobierzSzerokoscPaskaPrzewijania(x_box_right)+parseFloat(comp_element.getPropertyValue('padding-'+left_box))+parseFloat(comp_element.getPropertyValue('padding-'+right_box)))+"px"; element.classList.remove('mw-scrollbar-overflow-'+x_box_right); }); element_g.style.whiteSpace="normal"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[width_box]="auto"; var rect_dziecko=element_g.getBoundingClientRect(); var szerokosc_box=rect_dziecko[width_box]; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(szerokosc_box)+"px"; element_g.style[width_box]=(szerokosc_box)+"px"; var szerokosc=rect_dziecko[width_box]+parseFloat(comp.getPropertyValue("margin-"+left_box))+parseFloat(comp.getPropertyValue("margin-"+right_box)); if(parseInt(szerokosc)>parseInt(width_rodzic)){ element_g.style[right_box]="0"; element_g.style[left_box]="auto"; rodzic_element.style.overflow="visible"; }else{ element_g.style[left_box]="0"; element_g.style[right_box]="auto"; rodzic_element.style.position="relative"; } } } element_g.style[height]="auto"; element_g.style[height]=(element_g["offset"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))])+"px"; Common.ScrollBarOverflow(); for(var i in pozycje_paskow){ pozycje_paskow[i][0].scrollTop=pozycje_paskow[i][1]; pozycje_paskow[i][0].scrollLeft=pozycje_paskow[i][2]; } } element_g.classList.add('mw-sticky-js'); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var visibility=comp.getPropertyValue("visibility"); if(visibility=="hidden"){return;} var position=comp.getPropertyValue("position"); if(position!="absolute"){return;} var sticky_x=$(element_g).hasClass('mw-sticky-x'); var sticky_y=$(element_g).hasClass('mw-sticky-y'); if((sticky_x)&&(!sticky_y)){ var str=$(element_g).parents('.strona_górna, .strona_dolna').first(); if(str.hasClass('strona_dolna')){ FunStickyXY("width","left","right","height","top","bottom","y","x"); }else if(str.hasClass('strona_górna')){ FunStickyXY("width","left","right","height","bottom","top","y","x"); } }else if((!sticky_x)&&(sticky_y)){ var str=$(element_g).parents('.strona_prawa, .strona_lewa').first(); if(str.hasClass('strona_prawa')){ FunStickyXY("height","top","bottom","width","left","right","x","y"); }else if(str.hasClass('strona_lewa')){ FunStickyXY("height","top","bottom","width","right","left","x","y"); } }else{ FunStickyXY("width","left","right",null); FunStickyXY("height","top","bottom",null); } }); } $(function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); $(window).on('scroll', function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); $(window).on('resize', function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); /*Funkcja do ustawiania maksymalnego rozmiaru dziecka, względem rodzica, przy position:absolute*/ Common.OptimalXY=function(){ $('*.mw-optimal-x, *.mw-optimal-y').each(function(i,element_g){ var comp=window.getComputedStyle(element_g, null); function FunOptimalXY(width,left,right){ var pozycje_paskow=new Array(); $(element_g).find('*').each(function(i,element){ var comp=window.getComputedStyle(element, null); var overflow=comp.getPropertyValue("overflow"); var overflow_x=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); var overflow_y=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflow_x=="auto")||(overflow_x=="scroll")||(overflow_y=="auto")||(overflow_y=="scroll")){ pozycje_paskow.push(new Array(element,element.scrollTop,element.scrollLeft)); } }); var width_rodzic=null; var rodzic_node; var comp_rodz; $(element_g).parents('.mw-parent-node').first().each(function(i,element){ comp_rodz=window.getComputedStyle(element,null); width_rodzic=parseFloat(comp_rodz.getPropertyValue([width])); rodzic_node=element; }); if((width_rodzic!=null)&&(!isNaN(width_rodzic))){ element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; var width_box_real=parseFloat(comp.getPropertyValue(width)); var rect_dziecko=element_g.getBoundingClientRect(); if(width=="width"){ element_g.classList.remove('mw-scrollbar-overflow-x'); }else{ element_g.classList.remove('mw-scrollbar-overflow-y'); } if(parseInt(width_box_real)>parseInt(rect_dziecko[width])){ var rect_dziecko=element_g.getBoundingClientRect(); if(rect_dziecko[width]>width_rodzic){ if(width=="width"){ element_g.classList.add('mw-scrollbar-overflow-x'); }else{ element_g.classList.add('mw-scrollbar-overflow-y'); } } var width_box_real=parseFloat(comp.getPropertyValue(width)); var margin_all=parseFloat(comp.getPropertyValue("margin-"+left))+parseFloat(comp.getPropertyValue("margin-"+right)); margin_all+=parseFloat(comp_rodz.getPropertyValue("padding-"+left))+parseFloat(comp_rodz.getPropertyValue("padding-"+right)); var dlugosc=(width_rodzic-margin_all); dlugosc=((dlugosc>=0)?dlugosc:0); element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width]))+"px"; }else{ element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(rect_dziecko[width])+"px"; } var str=$(element_g).parents('.strona_prawa, .strona_lewa, .strona_górna, .strona_dolna').first(); if(!str.hasClass('strona_start-nawigacja_boksy')){ var rect_dziecko=element_g.getBoundingClientRect(); var szerokosc=rect_dziecko[width]+parseFloat(comp.getPropertyValue("margin-"+left))+parseFloat(comp.getPropertyValue("margin-"+right)); if(parseInt(szerokosc)>parseInt(width_rodzic)){ str.css('position','static'); }else{ str.css('position','relative'); } } } for(var i in pozycje_paskow){ pozycje_paskow[i][0].scrollTop=pozycje_paskow[i][1]; pozycje_paskow[i][0].scrollLeft=pozycje_paskow[i][2]; } }; element_g.classList.add('mw-optimal-js'); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var visibility=comp.getPropertyValue("visibility"); if(visibility=="hidden"){return;} var position=comp.getPropertyValue("position"); if(position!="absolute"){return;} var optimal_x=$(element_g).hasClass('mw-optimal-x'); var optimal_y=$(element_g).hasClass('mw-optimal-y'); if(optimal_x){ FunOptimalXY("width","left","right"); } if(optimal_y){ FunOptimalXY("height","top","bottom"); } }); } $(function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); $(window).on("scroll",function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); $(window).on("resize",function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); /*Uruchamianie dodatkowych funkcji, niż standardowe, w href w linkach rozwijanej tabeli TABLE lub ramki DIV, jeśli ona generuje zwiększenie rozmiarów, aby w rodzicu pojawił się pasek przewijania, z dodatkowymi opcjami generowanej przez arkusz kalkulacyjny CSS*/ Common.RamkiTableIDiv=function(obiekt,id_tabeli_lub_ramki,id_nazwa_a,fun_obiektu){ $(obiekt).each(function(i,element_f){ return new Promise(function(resolve,reject){ var czas=0; function Czekaj(){ if(czas>30000){ reject(); } var collapsebutton=$(element_f).find('a#'+id_nazwa_a+i); if((collapsebutton!==null)&&(collapsebutton.length>0)){ var tabele_lub_ramki=collapsebutton.parents('#'+id_tabeli_lub_ramki+i); if((tabele_lub_ramki===null)||(tabele_lub_ramki.length==0)){reject();} resolve(i); }else{ czas+=100; setTimeout(Czekaj,100); } } Czekaj(); }).then(function(i){ $('*.mw-overflow-x a#'+id_nazwa_a+i+', *.mw-overflow-y a#'+id_nazwa_a+i).each(function(j,element_g){ var href=element_g.getAttribute('href'); if((href!=null)&&(href!="")){ var col="[\\s;\\(\\,]*javascript:"+fun_obiektu.replace(/\./g,"\\.")+"\\s*\\(\\s*"+i+"\\s*\\)[\\s;\\)\\,]*"; var re_frame = new RegExp(col,'g'); var re_javascript=new RegExp("^[\\s;]*javascript:"); if((re_javascript.test(href))&&(re_frame.test(href))){ element_g.setAttribute('href',href.replace(/[;\s]*$/g,"")+';javascript:Common.ScrollBarOverflow();javascript:Common.StickyXY();javascript:Common.OptimalXY()') } } }); }).catch(function(){}); }); }; /*Dla menu rozwijanego tabeli TABLE zdefiniowanej na stronie MediaWiki:Common.js*/ Common.RamkiTableIDiv("table.collapsible",'collapsibleTable','collapseButton','Common.collapseTable'); /*Dla menu rozwijanej ramki DIV zdefiniowanej na stronie MediaWiki:Common.js*/ Common.RamkiTableIDiv("div.NavFrame",'NavFrame','NavToggle','Common.toggleNavigationBar'); /*Koniec dodatkowych funkcji*/ /*Uruchamianie dodatkowych zdarzeń do Common.StickyXY i OptimalXY*/ Common.ZdarzeniaDodatkoweFunkcyjneXY=function(css,fun_zdarz){ var fun_css=$(css); fun_css.on('mouseenter',fun_zdarz); fun_css.on('mouseleave',fun_zdarz); fun_css.on('transitionstart',fun_zdarz); fun_css.on('webkittransitionstart',fun_zdarz); fun_css.on('moztransitionstart',fun_zdarz); fun_css.on('otransitionstart',fun_zdarz); fun_css.on('transitionrun',fun_zdarz); fun_css.on('webkittransitionrun',fun_zdarz); fun_css.on('moztransitionrun',fun_zdarz); fun_css.on('otransitionrun',fun_zdarz); fun_css.on('transitioncancel',fun_zdarz); fun_css.on('webkittransitioncancel',fun_zdarz); fun_css.on('moztransitioncancel',fun_zdarz); fun_css.on('otransitioncancel',fun_zdarz); fun_css.on('transitionend',fun_zdarz); fun_css.on('webkittransitionend',fun_zdarz); fun_css.on('moztransitionend',fun_zdarz); fun_css.on('otransitionend',fun_zdarz); }; Common.ZdarzeniaDodatkoweFunkcyjneXY("*.mw-sticky-x, *.mw-sticky-y",Common.StickyXY); Common.ZdarzeniaDodatkoweFunkcyjneXY('*.mw-optimal-x, *.mw-optimal-y',Common.OptimalXY); /*Koniec dodatkowych zdarzeń*/ /*Program do obsługi szablonu StronaStart i jego pokrewnych książkowych*/ Common.StronaStart=function(){ var elements=$('.strona_start .strona .ciało_zawartości > .menu > .menu_boks'); elements.parent().show(); $('.strona_start').find('.strona_lewa .nawigacja_boksy, .strona_prawa .nawigacja_boksy').each(function(i,element){ $(element).css('visibility',"hidden"); }); $('.strona_start').find('.strona_lewa .nawigacja_spis, .strona_prawa .nawigacja_spis').each(function(i,element){ var czy_visible=$(element).css('visibility'); $(element).css('visibility',"visible"); var str=$(element).parents('.strona_prawa, .strona_lewa').first(); str.css('position','relative'); str.addClass('strona_start-nawigacja_spis'); str.removeClass('strona_start-nawigacja_boksy'); if(czy_visible=="hidden"){ $(Common.ScrollBarOverflow); $(Common.StickyXY); } }); function StronaStartFun(){ var id=this; $(id).parents('.strona_start').first().find('.strona .ciało_zawartości > .menu > .menu_boks').children().each(function(i,element){ var display=$(element).css('display'); if(display=="none"){ $(element).css('display',"block"); }else{ $(element).css('display',"none"); } }); $(id).parents('.strona_start').first().find('.strona_lewa, .strona_prawa').children().each(function(i,element){ var visibility=window.getComputedStyle(element, null).getPropertyValue('visibility'); if(visibility=="hidden"){ $(element).css('visibility',"visible"); var str=$(element).parents('.strona_prawa, .strona_lewa').first(); if($(element).hasClass('nawigacja_boksy')){ str.css('position','static'); str.addClass('strona_start-nawigacja_boksy'); str.removeClass('strona_start-nawigacja_spis'); $(Common.ScrollBarOverflow); $(Common.OptimalXY); }else if($(element).hasClass('nawigacja_spis')){ str.css('position','relative'); str.addClass('strona_start-nawigacja_spis'); str.removeClass('strona_start-nawigacja_boksy'); $(Common.ScrollBarOverflow); $(Common.StickyXY); } }else{ $(element).css('visibility',"hidden"); } }); } elements.on('click',StronaStartFun); } $(Common.StronaStart); trog828qusb3kw68892z7tgwcb6uik7 437168 437165 2022-08-07T19:18:04Z Persino 2851 javascript text/javascript mw.loader.load( '//pl.wikibooks.org/w/index.php?action=raw&ctype=text/javascript&title=Wikipedysta:Persino/Gadget-StronicowyParser.js', 'text/javascript', true ); /**/ /* Umieszczony tutaj kod JavaScript zostanie załadowany przez każdego użytkownika, podczas każdego ładowania strony. */ // Frame Busting if (top != self) top.location.href = self.location.href; /* * Zmienna Common.pageInfo, jego elementy, instrukcja obsługi: * Common.pageInfo.namespace numer przestrzeni nazw (równe wgNamespaceNumber) * Common.pageInfo.name pełna nazwa strony * Common.pageInfo.title tytuł strony, czyli ostatnia część po '/' albo jest równe pageInfo.name, gdy nigdzie nie występuje slash * Common.pageInfo.book tytuł książki * Common.pageInfo.action akcja taka jaka jest w adresie URL pod "action=", w przypadku normalnego czytania strony, action jest równe "get" * Common.pageInfo.diff null w przypadku, gdy nie porównujemy wersji, w przeciwnym wypadku wartość występującą w adresie URL */ /*Przestrzeń nazw: Common, zdefiniowanym za pomocą tablicy*/ var Common=new Array(); /*Funkcje w przestrzeni nazw Common*/ Common.Naglowek=function(){ /* Skrypt odpowiedzialny za wyświetlanie szablonu Nagłówek [[Szablon:Nagłówek]] */ var hideAll = document.getElementById('mójNagłówekUkryj'); var noFooter = false; var footers = 0; var tags = document.getElementsByTagName('div'); for (var i = 0; i < tags.length; i++) { var el=tags[i].getAttribute("id"); if (el=='mojaStopka') footers++; else if (hideAll && (el=='mójNagłówek')) { tags[i].innerHTML=""; noFooter=true; } } if (noFooter) return; var footer = document.getElementById('mojaStopka'); if ((footer !== null) && (footers==1)) { var bodyContent = document.getElementById('bodyContent'); if (bodyContent !== null) { var s0=document.getElementById('mojaStopka0'); var s1=document.getElementById('mojaStopka1'); if ((s1 !== null) || ((s0 === null) && (bodyContent.innerHTML.length>8000))){ var strona=document.getElementById('strona'); if(strona!==null){ strona.appendChild(footer); }else{ var catlinks=document.getElementById('catlinks'); if(catlinks !== null){ bodyContent.insertBefore(footer,catlinks); }else{ bodyContent.appendChild(footer); } } } } } /* Koniec skryptu odpowiedzialnego za wyświetlanie szablonu Nagłówek [[Szablon:Nagłówek]] */ }; $(Common.Naglowek); /*Informacje o danej stronie*/ Common.PageInfoInit=function(){ var _g = /_/g; this.name = mw.config.get('wgPageName').replace(/_/g, ' '); this.namespace = mw.config.get('wgNamespaceNumber'); var i = this.name.search(/\/[^\/]*$/g); this.title = this.name.slice(i + 1); this.book = this.name.replace(/\/.*/g, ""); if ( document.URL.search("//pl.wikibooks.org/w/index.php") != -1 ) { re = /\&diff=/g; this.diff = re.test(document.URL); re = /\&action=[^\&]*/g; this.action = document.URL.match(re); if ( this.action === null ) { this.action = 'get'; } else { this.action = this.action[0].slice(8, this.action[0].length); } } else { this.diff = null; this.action = 'get'; } } Common.pageInfo = new Common.PageInfoInit(); /** Collapsible tables ********************************************************* * * Description: Allows tables to be collapsed, showing only the header. See * [[en:Wikipedia:NavFrame]]. * Maintainers: [[User:R. Koot]] */ Common.autoCollapse = 2; Common.collapseCaption = "ukryj"; Common.expandCaption = "pokaż"; Common.collapseTable=function( tableIndex ) { var Button = document.getElementById( "collapseButton" + tableIndex ); var Table = document.getElementById( "collapsibleTable" + tableIndex ); if ( !Table || !Button ) { return false; } var Rows = Table.rows; if ( Button.firstChild.data == Common.collapseCaption ) { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = "none"; } Button.firstChild.data = Common.expandCaption; } else { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = Rows[0].style.display; } Button.firstChild.data = Common.collapseCaption; } } Common.createCollapseButtons=function() { var tableIndex = 0; var NavigationBoxes = new Object(); var Tables = document.getElementsByTagName( "table" ); for ( var i = 0; i < Tables.length; i++ ) { if ( $(Tables[i]).hasClass( "collapsible" ) ) { /* only add button and increment count if there is a header row to work with */ var HeaderRow = Tables[i].getElementsByTagName( "tr" )[0]; if (!HeaderRow) continue; var Header = HeaderRow.getElementsByTagName( "th" )[0]; if (!Header) continue; NavigationBoxes[ tableIndex ] = Tables[i]; Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex ); var Button = document.createElement( "span" ); var ButtonLink = document.createElement( "a" ); var ButtonText = document.createTextNode( Common.collapseCaption ); Button.style.styleFloat = "right"; Button.style.cssFloat = "right"; Button.style.fontWeight = "normal"; Button.style.textAlign = "right"; Button.style.width = "6em"; ButtonLink.style.color = Header.style.color; ButtonLink.setAttribute( "id", "collapseButton" + tableIndex ); ButtonLink.setAttribute( "href", "javascript:Common.collapseTable(" + tableIndex + ");" ); ButtonLink.appendChild( ButtonText ); Button.appendChild( document.createTextNode( "[" ) ); Button.appendChild( ButtonLink ); Button.appendChild( document.createTextNode( "]" ) ); $(Header.childNodes[0]).has('a#collapseButton' + tableIndex).each(function(i,element){ $(element).remove(); }); Header.insertBefore( Button, Header.childNodes[0]); tableIndex++; } } for ( var i = 0; i < tableIndex; i++ ) { if ( $(NavigationBoxes[i]).hasClass( "collapsed" ) || ( tableIndex >= Common.autoCollapse && $(NavigationBoxes[i]).hasClass( "Common.autoCollapse" ) ) ) { collapseTable( i ); } else if ( $(NavigationBoxes[i]).hasClass( "innercollapse" ) ) { var element = NavigationBoxes[i]; while (element = element.parentNode) { if ( $(element).hasClass( "outercollapse" ) ) { collapseTable ( i ); break; } } } } } $(Common.createCollapseButtons ); /** Dynamic Navigation Bars (experimental) ************************************* * * Description: See [[Wikipedia:NavFrame]]. * Maintainers: UNMAINTAINED */ // set up the words in your language Common.NavigationBarHide = '[' + Common.collapseCaption + ']'; Common.NavigationBarShow = '[' + Common.expandCaption + ']'; // shows and hides content and picture (if available) of navigation bars // Parameters: // indexNavigationBar: the index of navigation bar to be toggled Common.toggleNavigationBar=function(indexNavigationBar) { var NavToggle = document.getElementById("NavToggle" + indexNavigationBar); var NavFrame = document.getElementById("NavFrame" + indexNavigationBar); if (!NavFrame || !NavToggle) { return false; } // if shown now if (NavToggle.firstChild.data == Common.NavigationBarHide) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) ) { NavChild.style.display = 'none'; } if ( $(NavChild).hasClass( 'NavContent') ) { NavChild.style.display = 'none'; } } NavToggle.firstChild.data = Common.NavigationBarShow; // if hidden now } else if (NavToggle.firstChild.data == Common.NavigationBarShow) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ($(NavChild).hasClass( 'NavPic')) { NavChild.style.display = 'block'; } if ($(NavChild).hasClass( 'NavContent')) { NavChild.style.display = 'block'; } } NavToggle.firstChild.data = Common.NavigationBarHide; } } // adds show/hide-button to navigation bars Common.createNavigationBarToggleButton=function() { var indexNavigationBar = 0; // iterate over all < div >-elements var divs = document.getElementsByTagName("div"); for (var i = 0; NavFrame = divs[i]; i++) { // if found a navigation bar if ($(NavFrame).hasClass( "NavFrame")) { indexNavigationBar++; var NavToggle = document.createElement("a"); NavToggle.className = 'NavToggle'; NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar); NavToggle.setAttribute('href', 'javascript:Common.toggleNavigationBar(' + indexNavigationBar + ');'); var isCollapsed = $(NavFrame).hasClass( "collapsed" ); /* * Check if any children are already hidden. This loop is here for backwards compatibility: * the old way of making NavFrames start out collapsed was to manually add style="display:none" * to all the NavPic/NavContent elements. Since this was bad for accessibility (no way to make * the content visible without JavaScript support), the new recommended way is to add the class * "collapsed" to the NavFrame itself, just like with collapsible tables. */ for (var NavChild = NavFrame.firstChild; NavChild != null && !isCollapsed; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) || $(NavChild).hasClass( 'NavContent' ) ) { if ( NavChild.style.display == 'none' ) { isCollapsed = true; } } } if (isCollapsed) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) || $(NavChild).hasClass( 'NavContent' ) ) { NavChild.style.display = 'none'; } } } var NavToggleText = document.createTextNode(isCollapsed ? Common.NavigationBarShow : Common.NavigationBarHide); NavToggle.appendChild(NavToggleText); // Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked) for(var j=0; j < NavFrame.childNodes.length; j++) { if ($(NavFrame.childNodes[j]).hasClass( "NavHead")) { $(NavFrame.childNodes[j]).children('a.NavToggle#NavToggle' + indexNavigationBar).each(function(i,element){ $(element).remove(); }); NavFrame.childNodes[j].appendChild(NavToggle); } } NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar); } } } $(Common.createNavigationBarToggleButton ); // Wyszukiwanie Google na stronach podręczników Common.googleSearchInitialized = false; Common.insertGoogleSearch=function() { if ( mw.config.get('wgNamespaceNumber') != 0 || Common.googleSearchInitialized ) { return; } Common.googleSearchInitialized = true; var google = "http://www.google.com/custom?sa=Google+Search&domains=pl.wikibooks.org/wiki/PAGE&sitesearch=pl.wikibooks.org/wiki/PAGE"; var ul = jQuery('#p-tb ul')[0]; if (!ul) { return; } var link = document.createElement('a'); var book = Common.pageInfo.book; if ( book.length == 1 || book.indexOf('++') != -1 || encodeURIComponent(book) != book ) { google = "http://www.google.com/custom?sa=Google+Search&domains=pl.wikibooks.org/wiki/&sitesearch=pl.wikibooks.org/wiki/&q=%22PAGE%22" } link.href = google.replace(/PAGE/g, encodeURIComponent(book)); link.appendChild(document.createTextNode("Szukaj w podręczniku")); var li = document.createElement('li'); li.id = "google-trick-search"; li.appendChild(link); $(ul).children('li#google-trick-search').each(function(i,element){ $(element).remove(); }); ul.insertBefore(li, ul.firstChild); } $(Common.insertGoogleSearch); /*Funkcja do liczenia, czy nastąpiło przepełnienie poziome lub pionowe*/ Common.PobierzSzerokoscPaskaPrzewijania=function(x_box_right){ var div = $('<div style="width:50px;height:50px;overflow:hidden;position:absolute;top:-200px;left:-200px;"><div style="height:100px;"></div></div>'); $('body').append(div); var w1 = $('div', div)["inner"+((x_box_right=="y")?"Width":"Height")](); div.css('overflow-'+(x_box_right||"y"), 'scroll'); var w2 = $('div', div)["inner"+((x_box_right=="y")?"Width":"Height")](); $(div).remove(); return (w1 - w2); } /*Funkcje do obsługi pasków przewijania*/ Common.ScrollBarOverflow=function(){ $('*.mw-overflow-x, *.mw-overflow-y').each(function(i,element_g){ /*start overflow*/ var comp=window.getComputedStyle(element_g, null); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var overflow=comp.getPropertyValue("overflow"); var overflow_x=$(element_g).hasClass('mw-overflow-x'); if(overflow_x){ var overflowX=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); if((overflowX)&&(overflowX=="auto")){ element_g.classList.remove("mw-scrollbar-overflow-x"); const hasHorizontalScrollbar = element_g.scrollWidth > element_g.clientWidth; // true lub false if(hasHorizontalScrollbar){ element_g.classList.add("mw-scrollbar-overflow-x"); } } } var overflow_y=$(element_g).hasClass('mw-overflow-y'); if(overflow_y){ var overflowY=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflowY)&&(overflowY=="auto")){ element_g.classList.remove("mw-scrollbar-overflow-y"); const hasVerticalScrollbar = element_g.scrollHeight > element_g.clientHeight; // true lub false if(hasVerticalScrollbar){ element_g.classList.add("mw-scrollbar-overflow-y"); } } } /*koniec overflow*/ }); } $(function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); $(window).on('scroll', function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); $(window).on('resize', function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); /*Funkcja symulująca właściwości position:sticky, wszędzie tam, gdzie nie można go użyć.*/ Common.StickyXY=function(){ $('*.mw-sticky-x, *.mw-sticky-y').each(function(i,element_g){ var comp=window.getComputedStyle(element_g, null); function FunStickyXY(height,top,bottom,width_box,left_box,right_box,x_box,x_box_right){ var pozycje_paskow=new Array(); $(element_g).find('*').each(function(i,element){ var comp=window.getComputedStyle(element, null); var overflow=comp.getPropertyValue("overflow"); var overflow_x=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); var overflow_y=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflow_x=="auto")||(overflow_x=="scroll")||(overflow_y=="auto")||(overflow_y=="scroll")){ pozycje_paskow.push(new Array(element,element.scrollTop,element.scrollLeft)); } }); var height_sticky=0; $('html.client-js.vector-sticky-header-enabled body.skin-vector-search-vue.vector-sticky-header-visible header.vector-sticky-header').each(function(i,el){ var rect_sticky=el.getBoundingClientRect(); height_sticky=parseInt(rect_sticky[height]); }); var StickyXYTopOld=$(element_g).data('stickyXYOld-'+top);var StickyXYBottomOld=$(element_g).data('stickyXYOld-'+bottom); if(StickyXYTopOld===undefined){ var topold_war=parseFloat(element_g.style[top]); $(element_g).data('stickyXYOld-'+top,((!isNaN(topold_war))?topold_war:0)); } if(StickyXYBottomOld===undefined){ var bottomold_war=parseFloat(element_g.style[bottom]); $(element_g).data('stickyXYOld-'+bottom,((!isNaN(bottomold_war))?bottomold_war:0)); } var topold=$(element_g).data('stickyXYOld-'+top)+height_sticky+5; var margintop=parseFloat(comp.getPropertyValue("margin-"+top)); margintop=((!isNaN(margintop))?margintop:0); var marginbottom=parseFloat(comp.getPropertyValue("margin-"+bottom)); marginbottom=((!isNaN(marginbottom))?marginbottom:0); var przodek_height=undefined; element_g.style[height]="auto"; element_g.style["max"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[top]="auto"; element_g.style[bottom]="auto"; if(width_box!=null){ element_g.style[width_box]="auto"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[left_box]="auto"; element_g.style[right_box]="0"; $(element_g).find('.mw-not-overflow-'+x_box+'.mw-overflow-'+x_box).each(function(i,element){ element.style[width_box]="auto"; }); } var parents_node_fun=$(element_g).parents('.mw-parent-node').first(); if((parents_node_fun==null)||(parents_node_fun.length==0)){return;} var width_rodzic=null; var rodzic_element=undefined; var comp_rodz; parents_node_fun.each(function(i,element){ comp_rodz=window.getComputedStyle(element,null); przodek_height=parseFloat(comp_rodz.getPropertyValue([height])); width_rodzic=width_box?parseFloat(comp_rodz.getPropertyValue([width_box])):null; rodzic_element=element; }); var height_box_real=parseFloat(comp.getPropertyValue(height)); var rect_dziecko=element_g.getBoundingClientRect(); var wys=document.documentElement["client"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]; var rect_rodzic; parents_node_fun.each(function(i,element){ rect_rodzic=element.getBoundingClientRect(); }); var top_ab=rect_rodzic[top]-margintop; var bottom_ab=(wys-rect_rodzic[bottom])-marginbottom; var maxheight=Math.min(przodek_height,wys-((rect_rodzic[top]>=0)?(rect_rodzic[top]):(0))-((bottom_ab>=0)?(bottom_ab):(0)))-(((top_ab<=0)?(topold):(Math.max(0,topold-top_ab)))+((bottom_ab<=0)?($(element_g).data('stickyXYOld-'+bottom)+5):(Math.max(0,$(element_g).data('stickyXYOld-'+bottom)+5-bottom_ab)))+marginbottom+margintop); element_g.style["max"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(((maxheight>=0)?maxheight:0)*(height_box_real/rect_dziecko[height]))+"px"; element_g.style[height]=(element_g["offset"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))])+"px"; var top_obj=(((top_ab>=0)?0:(-top_ab)))+((top_ab<=0)?(topold):(Math.max(0,topold-top_ab))); element_g.style[top]=top_obj+"px"; element_g.style[bottom]="auto"; if(width_box!=null){ element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; rodzic_element.style.position="static"; rodzic_element.style.overflow="hidden"; var width_box_real=parseFloat(comp.getPropertyValue(width_box)); var rect_dziecko=element_g.getBoundingClientRect(); if(parseInt(width_box_real)>parseInt(rect_dziecko[width_box])){ if(width_box=="width"){ element_g.classList.remove('mw-scrollbar-overflow-x'); }else{ element_g.classList.remove('mw-scrollbar-overflow-y'); } if(rect_dziecko[width_box]>width_rodzic){ if(width_box=="width"){ element_g.classList.add('mw-scrollbar-overflow-x'); }else{ element_g.classList.add('mw-scrollbar-overflow-y'); } } var width_box_real=parseFloat(comp.getPropertyValue(width_box)); var margin_all=parseFloat(comp.getPropertyValue("margin-"+left_box))+parseFloat(comp.getPropertyValue("margin-"+right_box)); margin_all+=parseFloat(comp_rodz.getPropertyValue("padding-"+left_box))+parseFloat(comp_rodz.getPropertyValue("padding-"+right_box)); var dlugosc=(width_rodzic-margin_all); dlugosc=((dlugosc>=0)?dlugosc:0); element_g.style.whiteSpace="nowrap"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width_box]))+"px"; element_g.style[width_box]=width_box_real+"px"; Common.ScrollBarOverflow(); $(element_g).find('.mw-overflow-'+x_box+'.mw-not-overflow-'+x_box+'.mw-scrollbar-overflow-'+x_box).each(function(i,element){ var comp_element=window.getComputedStyle(element, null) element.style[width_box]=(element["scroll"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]+Common.PobierzSzerokoscPaskaPrzewijania(x_box_right)+parseFloat(comp_element.getPropertyValue('padding-'+left_box))+parseFloat(comp_element.getPropertyValue('padding-'+right_box)))+"px"; element.classList.remove('mw-scrollbar-overflow-'+x_box_right); }); element_g.style.whiteSpace="normal"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[width_box]="auto"; var rect_dziecko=element_g.getBoundingClientRect(); var width_box_real=parseFloat(comp.getPropertyValue(width_box)); element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width_box]))+"px"; element_g.style[width_box]=width_box_real+"px"; element_g.style[left_box]="0"; element_g.style[right_box]="auto"; rodzic_element.style.position="relative"; }else{ element_g.style.whiteSpace="nowrap"; var szerokosc_box=rect_dziecko[width_box]; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(szerokosc_box)+"px"; element_g.style[width_box]=(szerokosc_box)+"px"; Common.ScrollBarOverflow(); $(element_g).find('.mw-overflow-'+x_box+'.mw-not-overflow-'+x_box+'.mw-scrollbar-overflow-'+x_box).each(function(i,element){ var comp_element=window.getComputedStyle(element, null); element.style[width_box]=(element["scroll"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]+Common.PobierzSzerokoscPaskaPrzewijania(x_box_right)+parseFloat(comp_element.getPropertyValue('padding-'+left_box))+parseFloat(comp_element.getPropertyValue('padding-'+right_box)))+"px"; element.classList.remove('mw-scrollbar-overflow-'+x_box_right); }); element_g.style.whiteSpace="normal"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[width_box]="auto"; var rect_dziecko=element_g.getBoundingClientRect(); var szerokosc_box=rect_dziecko[width_box]; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(szerokosc_box)+"px"; element_g.style[width_box]=(szerokosc_box)+"px"; var szerokosc=rect_dziecko[width_box]+parseFloat(comp.getPropertyValue("margin-"+left_box))+parseFloat(comp.getPropertyValue("margin-"+right_box)); if(parseInt(szerokosc)>parseInt(width_rodzic)){ element_g.style[right_box]="0"; element_g.style[left_box]="auto"; rodzic_element.style.overflow="visible"; }else{ element_g.style[left_box]="0"; element_g.style[right_box]="auto"; rodzic_element.style.position="relative"; } } } element_g.style[height]="auto"; element_g.style[height]=(element_g["offset"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))])+"px"; Common.ScrollBarOverflow(); for(var i in pozycje_paskow){ pozycje_paskow[i][0].scrollTop=pozycje_paskow[i][1]; pozycje_paskow[i][0].scrollLeft=pozycje_paskow[i][2]; } } element_g.classList.add('mw-sticky-js'); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var visibility=comp.getPropertyValue("visibility"); if(visibility=="hidden"){return;} var position=comp.getPropertyValue("position"); if(position!="absolute"){return;} var sticky_x=$(element_g).hasClass('mw-sticky-x'); var sticky_y=$(element_g).hasClass('mw-sticky-y'); if((sticky_x)&&(!sticky_y)){ var str=$(element_g).parents('.strona_górna, .strona_dolna').first(); if(str.hasClass('strona_dolna')){ FunStickyXY("width","left","right","height","top","bottom","y","x"); }else if(str.hasClass('strona_górna')){ FunStickyXY("width","left","right","height","bottom","top","y","x"); } }else if((!sticky_x)&&(sticky_y)){ var str=$(element_g).parents('.strona_prawa, .strona_lewa').first(); if(str.hasClass('strona_prawa')){ FunStickyXY("height","top","bottom","width","left","right","x","y"); }else if(str.hasClass('strona_lewa')){ FunStickyXY("height","top","bottom","width","right","left","x","y"); } }else if((sticky_x)&&(sticky_y)){ FunStickyXY("width","left","right",null); FunStickyXY("height","top","bottom",null); } }); } $(function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); $(window).on('scroll', function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); $(window).on('resize', function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); /*Funkcja do ustawiania maksymalnego rozmiaru dziecka, względem rodzica, przy position:absolute*/ Common.OptimalXY=function(){ $('*.mw-optimal-x, *.mw-optimal-y').each(function(i,element_g){ var comp=window.getComputedStyle(element_g, null); function FunOptimalXY(width,left,right){ var pozycje_paskow=new Array(); $(element_g).find('*').each(function(i,element){ var comp=window.getComputedStyle(element, null); var overflow=comp.getPropertyValue("overflow"); var overflow_x=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); var overflow_y=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflow_x=="auto")||(overflow_x=="scroll")||(overflow_y=="auto")||(overflow_y=="scroll")){ pozycje_paskow.push(new Array(element,element.scrollTop,element.scrollLeft)); } }); var width_rodzic=null; var rodzic_node; var comp_rodz; $(element_g).parents('.mw-parent-node').first().each(function(i,element){ comp_rodz=window.getComputedStyle(element,null); width_rodzic=parseFloat(comp_rodz.getPropertyValue([width])); rodzic_node=element; }); if((width_rodzic!=null)&&(!isNaN(width_rodzic))){ element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; var width_box_real=parseFloat(comp.getPropertyValue(width)); var rect_dziecko=element_g.getBoundingClientRect(); if(width=="width"){ element_g.classList.remove('mw-scrollbar-overflow-x'); }else{ element_g.classList.remove('mw-scrollbar-overflow-y'); } if(parseInt(width_box_real)>parseInt(rect_dziecko[width])){ var rect_dziecko=element_g.getBoundingClientRect(); if(rect_dziecko[width]>width_rodzic){ if(width=="width"){ element_g.classList.add('mw-scrollbar-overflow-x'); }else{ element_g.classList.add('mw-scrollbar-overflow-y'); } } var width_box_real=parseFloat(comp.getPropertyValue(width)); var margin_all=parseFloat(comp.getPropertyValue("margin-"+left))+parseFloat(comp.getPropertyValue("margin-"+right)); margin_all+=parseFloat(comp_rodz.getPropertyValue("padding-"+left))+parseFloat(comp_rodz.getPropertyValue("padding-"+right)); var dlugosc=(width_rodzic-margin_all); dlugosc=((dlugosc>=0)?dlugosc:0); element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width]))+"px"; }else{ element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(rect_dziecko[width])+"px"; } var str=$(element_g).parents('.strona_prawa, .strona_lewa, .strona_górna, .strona_dolna').first(); if(!str.hasClass('strona_start-nawigacja_boksy')){ var rect_dziecko=element_g.getBoundingClientRect(); var szerokosc=rect_dziecko[width]+parseFloat(comp.getPropertyValue("margin-"+left))+parseFloat(comp.getPropertyValue("margin-"+right)); if(parseInt(szerokosc)>parseInt(width_rodzic)){ str.css('position','static'); }else{ str.css('position','relative'); } } } for(var i in pozycje_paskow){ pozycje_paskow[i][0].scrollTop=pozycje_paskow[i][1]; pozycje_paskow[i][0].scrollLeft=pozycje_paskow[i][2]; } }; element_g.classList.add('mw-optimal-js'); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var visibility=comp.getPropertyValue("visibility"); if(visibility=="hidden"){return;} var position=comp.getPropertyValue("position"); if(position!="absolute"){return;} var optimal_x=$(element_g).hasClass('mw-optimal-x'); var optimal_y=$(element_g).hasClass('mw-optimal-y'); if(optimal_x){ FunOptimalXY("width","left","right"); } if(optimal_y){ FunOptimalXY("height","top","bottom"); } }); } $(function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); $(window).on("scroll",function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); $(window).on("resize",function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); /*Uruchamianie dodatkowych funkcji, niż standardowe, w href w linkach rozwijanej tabeli TABLE lub ramki DIV, jeśli ona generuje zwiększenie rozmiarów, aby w rodzicu pojawił się pasek przewijania, z dodatkowymi opcjami generowanej przez arkusz kalkulacyjny CSS*/ Common.RamkiTableIDiv=function(obiekt,id_tabeli_lub_ramki,id_nazwa_a,fun_obiektu){ $(obiekt).each(function(i,element_f){ return new Promise(function(resolve,reject){ var czas=0; function Czekaj(){ if(czas>30000){ reject(); } var collapsebutton=$(element_f).find('a#'+id_nazwa_a+i); if((collapsebutton!==null)&&(collapsebutton.length>0)){ var tabele_lub_ramki=collapsebutton.parents('#'+id_tabeli_lub_ramki+i); if((tabele_lub_ramki===null)||(tabele_lub_ramki.length==0)){reject();} resolve(i); }else{ czas+=100; setTimeout(Czekaj,100); } } Czekaj(); }).then(function(i){ $('*.mw-overflow-x a#'+id_nazwa_a+i+', *.mw-overflow-y a#'+id_nazwa_a+i).each(function(j,element_g){ var href=element_g.getAttribute('href'); if((href!=null)&&(href!="")){ var col="[\\s;\\(\\,]*javascript:"+fun_obiektu.replace(/\./g,"\\.")+"\\s*\\(\\s*"+i+"\\s*\\)[\\s;\\)\\,]*"; var re_frame = new RegExp(col,'g'); var re_javascript=new RegExp("^[\\s;]*javascript:"); if((re_javascript.test(href))&&(re_frame.test(href))){ element_g.setAttribute('href',href.replace(/[;\s]*$/g,"")+';javascript:Common.ScrollBarOverflow();javascript:Common.StickyXY();javascript:Common.OptimalXY()') } } }); }).catch(function(){}); }); }; /*Dla menu rozwijanego tabeli TABLE zdefiniowanej na stronie MediaWiki:Common.js*/ Common.RamkiTableIDiv("table.collapsible",'collapsibleTable','collapseButton','Common.collapseTable'); /*Dla menu rozwijanej ramki DIV zdefiniowanej na stronie MediaWiki:Common.js*/ Common.RamkiTableIDiv("div.NavFrame",'NavFrame','NavToggle','Common.toggleNavigationBar'); /*Koniec dodatkowych funkcji*/ /*Uruchamianie dodatkowych zdarzeń do Common.StickyXY i OptimalXY*/ Common.ZdarzeniaDodatkoweFunkcyjneXY=function(css,fun_zdarz){ var fun_css=$(css); fun_css.on('mouseenter',fun_zdarz); fun_css.on('mouseleave',fun_zdarz); fun_css.on('transitionstart',fun_zdarz); fun_css.on('webkittransitionstart',fun_zdarz); fun_css.on('moztransitionstart',fun_zdarz); fun_css.on('otransitionstart',fun_zdarz); fun_css.on('transitionrun',fun_zdarz); fun_css.on('webkittransitionrun',fun_zdarz); fun_css.on('moztransitionrun',fun_zdarz); fun_css.on('otransitionrun',fun_zdarz); fun_css.on('transitioncancel',fun_zdarz); fun_css.on('webkittransitioncancel',fun_zdarz); fun_css.on('moztransitioncancel',fun_zdarz); fun_css.on('otransitioncancel',fun_zdarz); fun_css.on('transitionend',fun_zdarz); fun_css.on('webkittransitionend',fun_zdarz); fun_css.on('moztransitionend',fun_zdarz); fun_css.on('otransitionend',fun_zdarz); }; Common.ZdarzeniaDodatkoweFunkcyjneXY("*.mw-sticky-x, *.mw-sticky-y",Common.StickyXY); Common.ZdarzeniaDodatkoweFunkcyjneXY('*.mw-optimal-x, *.mw-optimal-y',Common.OptimalXY); /*Koniec dodatkowych zdarzeń*/ /*Program do obsługi szablonu StronaStart i jego pokrewnych książkowych*/ Common.StronaStart=function(){ var elements=$('.strona_start .strona .ciało_zawartości > .menu > .menu_boks'); elements.parent().show(); $('.strona_start').find('.strona_lewa .nawigacja_boksy, .strona_prawa .nawigacja_boksy').each(function(i,element){ $(element).css('visibility',"hidden"); }); $('.strona_start').find('.strona_lewa .nawigacja_spis, .strona_prawa .nawigacja_spis').each(function(i,element){ var czy_visible=$(element).css('visibility'); $(element).css('visibility',"visible"); var str=$(element).parents('.strona_prawa, .strona_lewa').first(); str.css('position','relative'); str.addClass('strona_start-nawigacja_spis'); str.removeClass('strona_start-nawigacja_boksy'); if(czy_visible=="hidden"){ $(Common.ScrollBarOverflow); $(Common.StickyXY); } }); function StronaStartFun(){ var id=this; $(id).parents('.strona_start').first().find('.strona .ciało_zawartości > .menu > .menu_boks').children().each(function(i,element){ var display=$(element).css('display'); if(display=="none"){ $(element).css('display',"block"); }else{ $(element).css('display',"none"); } }); $(id).parents('.strona_start').first().find('.strona_lewa, .strona_prawa').children().each(function(i,element){ var visibility=window.getComputedStyle(element, null).getPropertyValue('visibility'); if(visibility=="hidden"){ $(element).css('visibility',"visible"); var str=$(element).parents('.strona_prawa, .strona_lewa').first(); if($(element).hasClass('nawigacja_boksy')){ str.css('position','static'); str.addClass('strona_start-nawigacja_boksy'); str.removeClass('strona_start-nawigacja_spis'); $(Common.ScrollBarOverflow); $(Common.OptimalXY); }else if($(element).hasClass('nawigacja_spis')){ str.css('position','relative'); str.addClass('strona_start-nawigacja_spis'); str.removeClass('strona_start-nawigacja_boksy'); $(Common.ScrollBarOverflow); $(Common.StickyXY); } }else{ $(element).css('visibility',"hidden"); } }); } elements.on('click',StronaStartFun); } $(Common.StronaStart); 2wqr2prhx8zv07gomlsq9joriordhn6 437171 437168 2022-08-07T19:32:16Z Persino 2851 javascript text/javascript mw.loader.load( '//pl.wikibooks.org/w/index.php?action=raw&ctype=text/javascript&title=Wikipedysta:Persino/Gadget-StronicowyParser.js', 'text/javascript', true ); /**/ /* Umieszczony tutaj kod JavaScript zostanie załadowany przez każdego użytkownika, podczas każdego ładowania strony. */ // Frame Busting if (top != self) top.location.href = self.location.href; /* * Zmienna Common.pageInfo, jego elementy, instrukcja obsługi: * Common.pageInfo.namespace numer przestrzeni nazw (równe wgNamespaceNumber) * Common.pageInfo.name pełna nazwa strony * Common.pageInfo.title tytuł strony, czyli ostatnia część po '/' albo jest równe pageInfo.name, gdy nigdzie nie występuje slash * Common.pageInfo.book tytuł książki * Common.pageInfo.action akcja taka jaka jest w adresie URL pod "action=", w przypadku normalnego czytania strony, action jest równe "get" * Common.pageInfo.diff null w przypadku, gdy nie porównujemy wersji, w przeciwnym wypadku wartość występującą w adresie URL */ /*Przestrzeń nazw: Common, zdefiniowanym za pomocą tablicy*/ var Common=new Array(); /*Funkcje w przestrzeni nazw Common*/ Common.Naglowek=function(){ /* Skrypt odpowiedzialny za wyświetlanie szablonu Nagłówek [[Szablon:Nagłówek]] */ var hideAll = document.getElementById('mójNagłówekUkryj'); var noFooter = false; var footers = 0; var tags = document.getElementsByTagName('div'); for (var i = 0; i < tags.length; i++) { var el=tags[i].getAttribute("id"); if (el=='mojaStopka') footers++; else if (hideAll && (el=='mójNagłówek')) { tags[i].innerHTML=""; noFooter=true; } } if (noFooter) return; var footer = document.getElementById('mojaStopka'); if ((footer !== null) && (footers==1)) { var bodyContent = document.getElementById('bodyContent'); if (bodyContent !== null) { var s0=document.getElementById('mojaStopka0'); var s1=document.getElementById('mojaStopka1'); if ((s1 !== null) || ((s0 === null) && (bodyContent.innerHTML.length>8000))){ var strona=document.getElementById('strona'); if(strona!==null){ strona.appendChild(footer); }else{ var catlinks=document.getElementById('catlinks'); if(catlinks !== null){ bodyContent.insertBefore(footer,catlinks); }else{ bodyContent.appendChild(footer); } } } } } /* Koniec skryptu odpowiedzialnego za wyświetlanie szablonu Nagłówek [[Szablon:Nagłówek]] */ }; $(Common.Naglowek); /*Informacje o danej stronie*/ Common.PageInfoInit=function(){ var _g = /_/g; this.name = mw.config.get('wgPageName').replace(/_/g, ' '); this.namespace = mw.config.get('wgNamespaceNumber'); var i = this.name.search(/\/[^\/]*$/g); this.title = this.name.slice(i + 1); this.book = this.name.replace(/\/.*/g, ""); if ( document.URL.search("//pl.wikibooks.org/w/index.php") != -1 ) { re = /\&diff=/g; this.diff = re.test(document.URL); re = /\&action=[^\&]*/g; this.action = document.URL.match(re); if ( this.action === null ) { this.action = 'get'; } else { this.action = this.action[0].slice(8, this.action[0].length); } } else { this.diff = null; this.action = 'get'; } } Common.pageInfo = new Common.PageInfoInit(); /** Collapsible tables ********************************************************* * * Description: Allows tables to be collapsed, showing only the header. See * [[en:Wikipedia:NavFrame]]. * Maintainers: [[User:R. Koot]] */ Common.autoCollapse = 2; Common.collapseCaption = "ukryj"; Common.expandCaption = "pokaż"; Common.collapseTable=function( tableIndex ) { var Button = document.getElementById( "collapseButton" + tableIndex ); var Table = document.getElementById( "collapsibleTable" + tableIndex ); if ( !Table || !Button ) { return false; } var Rows = Table.rows; if ( Button.firstChild.data == Common.collapseCaption ) { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = "none"; } Button.firstChild.data = Common.expandCaption; } else { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = Rows[0].style.display; } Button.firstChild.data = Common.collapseCaption; } } Common.createCollapseButtons=function() { var tableIndex = 0; var NavigationBoxes = new Object(); var Tables = document.getElementsByTagName( "table" ); for ( var i = 0; i < Tables.length; i++ ) { if ( $(Tables[i]).hasClass( "collapsible" ) ) { /* only add button and increment count if there is a header row to work with */ var HeaderRow = Tables[i].getElementsByTagName( "tr" )[0]; if (!HeaderRow) continue; var Header = HeaderRow.getElementsByTagName( "th" )[0]; if (!Header) continue; NavigationBoxes[ tableIndex ] = Tables[i]; Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex ); var Button = document.createElement( "span" ); var ButtonLink = document.createElement( "a" ); var ButtonText = document.createTextNode( Common.collapseCaption ); Button.style.styleFloat = "right"; Button.style.cssFloat = "right"; Button.style.fontWeight = "normal"; Button.style.textAlign = "right"; Button.style.width = "6em"; ButtonLink.style.color = Header.style.color; ButtonLink.setAttribute( "id", "collapseButton" + tableIndex ); ButtonLink.setAttribute( "href", "javascript:Common.collapseTable(" + tableIndex + ");" ); ButtonLink.appendChild( ButtonText ); Button.appendChild( document.createTextNode( "[" ) ); Button.appendChild( ButtonLink ); Button.appendChild( document.createTextNode( "]" ) ); $(Header.childNodes[0]).has('a#collapseButton' + tableIndex).each(function(i,element){ $(element).remove(); }); Header.insertBefore( Button, Header.childNodes[0]); tableIndex++; } } for ( var i = 0; i < tableIndex; i++ ) { if ( $(NavigationBoxes[i]).hasClass( "collapsed" ) || ( tableIndex >= Common.autoCollapse && $(NavigationBoxes[i]).hasClass( "Common.autoCollapse" ) ) ) { collapseTable( i ); } else if ( $(NavigationBoxes[i]).hasClass( "innercollapse" ) ) { var element = NavigationBoxes[i]; while (element = element.parentNode) { if ( $(element).hasClass( "outercollapse" ) ) { collapseTable ( i ); break; } } } } } $(Common.createCollapseButtons ); /** Dynamic Navigation Bars (experimental) ************************************* * * Description: See [[Wikipedia:NavFrame]]. * Maintainers: UNMAINTAINED */ // set up the words in your language Common.NavigationBarHide = '[' + Common.collapseCaption + ']'; Common.NavigationBarShow = '[' + Common.expandCaption + ']'; // shows and hides content and picture (if available) of navigation bars // Parameters: // indexNavigationBar: the index of navigation bar to be toggled Common.toggleNavigationBar=function(indexNavigationBar) { var NavToggle = document.getElementById("NavToggle" + indexNavigationBar); var NavFrame = document.getElementById("NavFrame" + indexNavigationBar); if (!NavFrame || !NavToggle) { return false; } // if shown now if (NavToggle.firstChild.data == Common.NavigationBarHide) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) ) { NavChild.style.display = 'none'; } if ( $(NavChild).hasClass( 'NavContent') ) { NavChild.style.display = 'none'; } } NavToggle.firstChild.data = Common.NavigationBarShow; // if hidden now } else if (NavToggle.firstChild.data == Common.NavigationBarShow) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ($(NavChild).hasClass( 'NavPic')) { NavChild.style.display = 'block'; } if ($(NavChild).hasClass( 'NavContent')) { NavChild.style.display = 'block'; } } NavToggle.firstChild.data = Common.NavigationBarHide; } } // adds show/hide-button to navigation bars Common.createNavigationBarToggleButton=function() { var indexNavigationBar = 0; // iterate over all < div >-elements var divs = document.getElementsByTagName("div"); for (var i = 0; NavFrame = divs[i]; i++) { // if found a navigation bar if ($(NavFrame).hasClass( "NavFrame")) { indexNavigationBar++; var NavToggle = document.createElement("a"); NavToggle.className = 'NavToggle'; NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar); NavToggle.setAttribute('href', 'javascript:Common.toggleNavigationBar(' + indexNavigationBar + ');'); var isCollapsed = $(NavFrame).hasClass( "collapsed" ); /* * Check if any children are already hidden. This loop is here for backwards compatibility: * the old way of making NavFrames start out collapsed was to manually add style="display:none" * to all the NavPic/NavContent elements. Since this was bad for accessibility (no way to make * the content visible without JavaScript support), the new recommended way is to add the class * "collapsed" to the NavFrame itself, just like with collapsible tables. */ for (var NavChild = NavFrame.firstChild; NavChild != null && !isCollapsed; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) || $(NavChild).hasClass( 'NavContent' ) ) { if ( NavChild.style.display == 'none' ) { isCollapsed = true; } } } if (isCollapsed) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) || $(NavChild).hasClass( 'NavContent' ) ) { NavChild.style.display = 'none'; } } } var NavToggleText = document.createTextNode(isCollapsed ? Common.NavigationBarShow : Common.NavigationBarHide); NavToggle.appendChild(NavToggleText); // Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked) for(var j=0; j < NavFrame.childNodes.length; j++) { if ($(NavFrame.childNodes[j]).hasClass( "NavHead")) { $(NavFrame.childNodes[j]).children('a.NavToggle#NavToggle' + indexNavigationBar).each(function(i,element){ $(element).remove(); }); NavFrame.childNodes[j].appendChild(NavToggle); } } NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar); } } } $(Common.createNavigationBarToggleButton ); // Wyszukiwanie Google na stronach podręczników Common.googleSearchInitialized = false; Common.insertGoogleSearch=function() { if ( mw.config.get('wgNamespaceNumber') != 0 || Common.googleSearchInitialized ) { return; } Common.googleSearchInitialized = true; var google = "http://www.google.com/custom?sa=Google+Search&domains=pl.wikibooks.org/wiki/PAGE&sitesearch=pl.wikibooks.org/wiki/PAGE"; var ul = jQuery('#p-tb ul')[0]; if (!ul) { return; } var link = document.createElement('a'); var book = Common.pageInfo.book; if ( book.length == 1 || book.indexOf('++') != -1 || encodeURIComponent(book) != book ) { google = "http://www.google.com/custom?sa=Google+Search&domains=pl.wikibooks.org/wiki/&sitesearch=pl.wikibooks.org/wiki/&q=%22PAGE%22" } link.href = google.replace(/PAGE/g, encodeURIComponent(book)); link.appendChild(document.createTextNode("Szukaj w podręczniku")); var li = document.createElement('li'); li.id = "google-trick-search"; li.appendChild(link); $(ul).children('li#google-trick-search').each(function(i,element){ $(element).remove(); }); ul.insertBefore(li, ul.firstChild); } $(Common.insertGoogleSearch); /*Funkcja do liczenia, czy nastąpiło przepełnienie poziome lub pionowe*/ Common.PobierzSzerokoscPaskaPrzewijania=function(x_box_right){ var div = $('<div style="width:50px;height:50px;overflow:hidden;position:absolute;top:-200px;left:-200px;"><div style="height:100px;"></div></div>'); $('body').append(div); var w1 = $('div', div)["inner"+((x_box_right=="y")?"Width":"Height")](); div.css('overflow-'+(x_box_right||"y"), 'scroll'); var w2 = $('div', div)["inner"+((x_box_right=="y")?"Width":"Height")](); $(div).remove(); return (w1 - w2); } /*Funkcje do obsługi pasków przewijania*/ Common.ScrollBarOverflow=function(){ $('*.mw-overflow-x, *.mw-overflow-y').each(function(i,element_g){ /*start overflow*/ var comp=window.getComputedStyle(element_g, null); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var overflow=comp.getPropertyValue("overflow"); var overflow_x=$(element_g).hasClass('mw-overflow-x'); if(overflow_x){ var overflowX=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); if((overflowX)&&(overflowX=="auto")){ element_g.classList.remove("mw-scrollbar-overflow-x"); const hasHorizontalScrollbar = element_g.scrollWidth > element_g.clientWidth; // true lub false if(hasHorizontalScrollbar){ element_g.classList.add("mw-scrollbar-overflow-x"); } } } var overflow_y=$(element_g).hasClass('mw-overflow-y'); if(overflow_y){ var overflowY=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflowY)&&(overflowY=="auto")){ element_g.classList.remove("mw-scrollbar-overflow-y"); const hasVerticalScrollbar = element_g.scrollHeight > element_g.clientHeight; // true lub false if(hasVerticalScrollbar){ element_g.classList.add("mw-scrollbar-overflow-y"); } } } /*koniec overflow*/ }); } $(function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); $(window).on('scroll', Common.ScrollBarOverflow); $(window).on('resize', Common.ScrollBarOverflow); /*Funkcja symulująca właściwości position:sticky, wszędzie tam, gdzie nie można go użyć.*/ Common.StickyXY=function(){ $('*.mw-sticky-x, *.mw-sticky-y').each(function(i,element_g){ var comp=window.getComputedStyle(element_g, null); function FunStickyXY(height,top,bottom,width_box,left_box,right_box,x_box,x_box_right){ var pozycje_paskow=new Array(); $(element_g).find('*').each(function(i,element){ var comp=window.getComputedStyle(element, null); var overflow=comp.getPropertyValue("overflow"); var overflow_x=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); var overflow_y=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflow_x=="auto")||(overflow_x=="scroll")||(overflow_y=="auto")||(overflow_y=="scroll")){ pozycje_paskow.push(new Array(element,element.scrollTop,element.scrollLeft)); } }); var height_sticky=0; $('html.client-js.vector-sticky-header-enabled body.skin-vector-search-vue.vector-sticky-header-visible header.vector-sticky-header').each(function(i,el){ var rect_sticky=el.getBoundingClientRect(); height_sticky=parseInt(rect_sticky[height]); }); var StickyXYTopOld=$(element_g).data('stickyXYOld-'+top);var StickyXYBottomOld=$(element_g).data('stickyXYOld-'+bottom); if(StickyXYTopOld===undefined){ var topold_war=parseFloat(element_g.style[top]); $(element_g).data('stickyXYOld-'+top,((!isNaN(topold_war))?topold_war:0)); } if(StickyXYBottomOld===undefined){ var bottomold_war=parseFloat(element_g.style[bottom]); $(element_g).data('stickyXYOld-'+bottom,((!isNaN(bottomold_war))?bottomold_war:0)); } var topold=$(element_g).data('stickyXYOld-'+top)+height_sticky+5; var margintop=parseFloat(comp.getPropertyValue("margin-"+top)); margintop=((!isNaN(margintop))?margintop:0); var marginbottom=parseFloat(comp.getPropertyValue("margin-"+bottom)); marginbottom=((!isNaN(marginbottom))?marginbottom:0); var przodek_height=undefined; element_g.style[height]="auto"; element_g.style["max"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[top]="auto"; element_g.style[bottom]="auto"; if(width_box!=null){ element_g.style[width_box]="auto"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[left_box]="auto"; element_g.style[right_box]="0"; $(element_g).find('.mw-not-overflow-'+x_box+'.mw-overflow-'+x_box).each(function(i,element){ element.style[width_box]="auto"; }); } var parents_node_fun=$(element_g).parents('.mw-parent-node').first(); if((parents_node_fun==null)||(parents_node_fun.length==0)){return;} var width_rodzic=null; var rodzic_element=undefined; var comp_rodz; parents_node_fun.each(function(i,element){ comp_rodz=window.getComputedStyle(element,null); przodek_height=parseFloat(comp_rodz.getPropertyValue([height])); width_rodzic=width_box?parseFloat(comp_rodz.getPropertyValue([width_box])):null; rodzic_element=element; }); var height_box_real=parseFloat(comp.getPropertyValue(height)); var rect_dziecko=element_g.getBoundingClientRect(); var wys=document.documentElement["client"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]; var rect_rodzic; parents_node_fun.each(function(i,element){ rect_rodzic=element.getBoundingClientRect(); }); var top_ab=rect_rodzic[top]-margintop; var bottom_ab=(wys-rect_rodzic[bottom])-marginbottom; var maxheight=Math.min(przodek_height,wys-((rect_rodzic[top]>=0)?(rect_rodzic[top]):(0))-((bottom_ab>=0)?(bottom_ab):(0)))-(((top_ab<=0)?(topold):(Math.max(0,topold-top_ab)))+((bottom_ab<=0)?($(element_g).data('stickyXYOld-'+bottom)+5):(Math.max(0,$(element_g).data('stickyXYOld-'+bottom)+5-bottom_ab)))+marginbottom+margintop); element_g.style["max"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(((maxheight>=0)?maxheight:0)*(height_box_real/rect_dziecko[height]))+"px"; element_g.style[height]=(element_g["offset"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))])+"px"; var top_obj=(((top_ab>=0)?0:(-top_ab)))+((top_ab<=0)?(topold):(Math.max(0,topold-top_ab))); element_g.style[top]=top_obj+"px"; element_g.style[bottom]="auto"; if(width_box!=null){ element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; rodzic_element.style.position="static"; rodzic_element.style.overflow="hidden"; var width_box_real=parseFloat(comp.getPropertyValue(width_box)); var rect_dziecko=element_g.getBoundingClientRect(); if(parseInt(width_box_real)>parseInt(rect_dziecko[width_box])){ if(width_box=="width"){ element_g.classList.remove('mw-scrollbar-overflow-x'); }else{ element_g.classList.remove('mw-scrollbar-overflow-y'); } if(rect_dziecko[width_box]>width_rodzic){ if(width_box=="width"){ element_g.classList.add('mw-scrollbar-overflow-x'); }else{ element_g.classList.add('mw-scrollbar-overflow-y'); } } var width_box_real=parseFloat(comp.getPropertyValue(width_box)); var margin_all=parseFloat(comp.getPropertyValue("margin-"+left_box))+parseFloat(comp.getPropertyValue("margin-"+right_box)); margin_all+=parseFloat(comp_rodz.getPropertyValue("padding-"+left_box))+parseFloat(comp_rodz.getPropertyValue("padding-"+right_box)); var dlugosc=(width_rodzic-margin_all); dlugosc=((dlugosc>=0)?dlugosc:0); element_g.style.whiteSpace="nowrap"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width_box]))+"px"; element_g.style[width_box]=width_box_real+"px"; Common.ScrollBarOverflow(); $(element_g).find('.mw-overflow-'+x_box+'.mw-not-overflow-'+x_box+'.mw-scrollbar-overflow-'+x_box).each(function(i,element){ var comp_element=window.getComputedStyle(element, null) element.style[width_box]=(element["scroll"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]+Common.PobierzSzerokoscPaskaPrzewijania(x_box_right)+parseFloat(comp_element.getPropertyValue('padding-'+left_box))+parseFloat(comp_element.getPropertyValue('padding-'+right_box)))+"px"; element.classList.remove('mw-scrollbar-overflow-'+x_box_right); }); element_g.style.whiteSpace="normal"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[width_box]="auto"; var rect_dziecko=element_g.getBoundingClientRect(); var width_box_real=parseFloat(comp.getPropertyValue(width_box)); element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width_box]))+"px"; element_g.style[width_box]=width_box_real+"px"; element_g.style[left_box]="0"; element_g.style[right_box]="auto"; rodzic_element.style.position="relative"; }else{ element_g.style.whiteSpace="nowrap"; var szerokosc_box=rect_dziecko[width_box]; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(szerokosc_box)+"px"; element_g.style[width_box]=(szerokosc_box)+"px"; Common.ScrollBarOverflow(); $(element_g).find('.mw-overflow-'+x_box+'.mw-not-overflow-'+x_box+'.mw-scrollbar-overflow-'+x_box).each(function(i,element){ var comp_element=window.getComputedStyle(element, null); element.style[width_box]=(element["scroll"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]+Common.PobierzSzerokoscPaskaPrzewijania(x_box_right)+parseFloat(comp_element.getPropertyValue('padding-'+left_box))+parseFloat(comp_element.getPropertyValue('padding-'+right_box)))+"px"; element.classList.remove('mw-scrollbar-overflow-'+x_box_right); }); element_g.style.whiteSpace="normal"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[width_box]="auto"; var rect_dziecko=element_g.getBoundingClientRect(); var szerokosc_box=rect_dziecko[width_box]; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(szerokosc_box)+"px"; element_g.style[width_box]=(szerokosc_box)+"px"; var szerokosc=rect_dziecko[width_box]+parseFloat(comp.getPropertyValue("margin-"+left_box))+parseFloat(comp.getPropertyValue("margin-"+right_box)); if(parseInt(szerokosc)>parseInt(width_rodzic)){ element_g.style[right_box]="0"; element_g.style[left_box]="auto"; rodzic_element.style.overflow="visible"; }else{ element_g.style[left_box]="0"; element_g.style[right_box]="auto"; rodzic_element.style.position="relative"; } } } element_g.style[height]="auto"; element_g.style[height]=(element_g["offset"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))])+"px"; Common.ScrollBarOverflow(); for(var i in pozycje_paskow){ pozycje_paskow[i][0].scrollTop=pozycje_paskow[i][1]; pozycje_paskow[i][0].scrollLeft=pozycje_paskow[i][2]; } } element_g.classList.add('mw-sticky-js'); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var visibility=comp.getPropertyValue("visibility"); if(visibility=="hidden"){return;} var position=comp.getPropertyValue("position"); if(position!="absolute"){return;} var sticky_x=$(element_g).hasClass('mw-sticky-x'); var sticky_y=$(element_g).hasClass('mw-sticky-y'); if((sticky_x)&&(!sticky_y)){ var str=$(element_g).parents('.strona_górna, .strona_dolna').first(); if(str.hasClass('strona_dolna')){ FunStickyXY("width","left","right","height","top","bottom","y","x"); }else if(str.hasClass('strona_górna')){ FunStickyXY("width","left","right","height","bottom","top","y","x"); } }else if((!sticky_x)&&(sticky_y)){ var str=$(element_g).parents('.strona_prawa, .strona_lewa').first(); if(str.hasClass('strona_prawa')){ FunStickyXY("height","top","bottom","width","left","right","x","y"); }else if(str.hasClass('strona_lewa')){ FunStickyXY("height","top","bottom","width","right","left","x","y"); } }else if((sticky_x)&&(sticky_y)){ FunStickyXY("width","left","right",null); FunStickyXY("height","top","bottom",null); } }); } $(function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); $(window).on('scroll', Common.StickyXY); $(window).on('resize', Common.StickyXY); /*Funkcja do ustawiania maksymalnego rozmiaru dziecka, względem rodzica, przy position:absolute*/ Common.OptimalXY=function(){ $('*.mw-optimal-x, *.mw-optimal-y').each(function(i,element_g){ var comp=window.getComputedStyle(element_g, null); function FunOptimalXY(width,left,right){ var pozycje_paskow=new Array(); $(element_g).find('*').each(function(i,element){ var comp=window.getComputedStyle(element, null); var overflow=comp.getPropertyValue("overflow"); var overflow_x=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); var overflow_y=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflow_x=="auto")||(overflow_x=="scroll")||(overflow_y=="auto")||(overflow_y=="scroll")){ pozycje_paskow.push(new Array(element,element.scrollTop,element.scrollLeft)); } }); var width_rodzic=null; var rodzic_node; var comp_rodz; $(element_g).parents('.mw-parent-node').first().each(function(i,element){ comp_rodz=window.getComputedStyle(element,null); width_rodzic=parseFloat(comp_rodz.getPropertyValue([width])); rodzic_node=element; }); if((width_rodzic!=null)&&(!isNaN(width_rodzic))){ element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; var width_box_real=parseFloat(comp.getPropertyValue(width)); var rect_dziecko=element_g.getBoundingClientRect(); if(width=="width"){ element_g.classList.remove('mw-scrollbar-overflow-x'); }else{ element_g.classList.remove('mw-scrollbar-overflow-y'); } if(parseInt(width_box_real)>parseInt(rect_dziecko[width])){ var rect_dziecko=element_g.getBoundingClientRect(); if(rect_dziecko[width]>width_rodzic){ if(width=="width"){ element_g.classList.add('mw-scrollbar-overflow-x'); }else{ element_g.classList.add('mw-scrollbar-overflow-y'); } } var width_box_real=parseFloat(comp.getPropertyValue(width)); var margin_all=parseFloat(comp.getPropertyValue("margin-"+left))+parseFloat(comp.getPropertyValue("margin-"+right)); margin_all+=parseFloat(comp_rodz.getPropertyValue("padding-"+left))+parseFloat(comp_rodz.getPropertyValue("padding-"+right)); var dlugosc=(width_rodzic-margin_all); dlugosc=((dlugosc>=0)?dlugosc:0); element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width]))+"px"; }else{ element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(rect_dziecko[width])+"px"; } var str=$(element_g).parents('.strona_prawa, .strona_lewa, .strona_górna, .strona_dolna').first(); if(!str.hasClass('strona_start-nawigacja_boksy')){ var rect_dziecko=element_g.getBoundingClientRect(); var szerokosc=rect_dziecko[width]+parseFloat(comp.getPropertyValue("margin-"+left))+parseFloat(comp.getPropertyValue("margin-"+right)); if(parseInt(szerokosc)>parseInt(width_rodzic)){ str.css('position','static'); }else{ str.css('position','relative'); } } } for(var i in pozycje_paskow){ pozycje_paskow[i][0].scrollTop=pozycje_paskow[i][1]; pozycje_paskow[i][0].scrollLeft=pozycje_paskow[i][2]; } }; element_g.classList.add('mw-optimal-js'); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var visibility=comp.getPropertyValue("visibility"); if(visibility=="hidden"){return;} var position=comp.getPropertyValue("position"); if(position!="absolute"){return;} var optimal_x=$(element_g).hasClass('mw-optimal-x'); var optimal_y=$(element_g).hasClass('mw-optimal-y'); if(optimal_x){ FunOptimalXY("width","left","right"); } if(optimal_y){ FunOptimalXY("height","top","bottom"); } }); } $(function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); $(window).on("scroll",Common.OptimalXY); $(window).on("resize",Common.OptimalXY); /*Uruchamianie dodatkowych funkcji, niż standardowe, w href w linkach rozwijanej tabeli TABLE lub ramki DIV, jeśli ona generuje zwiększenie rozmiarów, aby w rodzicu pojawił się pasek przewijania, z dodatkowymi opcjami generowanej przez arkusz kalkulacyjny CSS*/ Common.RamkiTableIDiv=function(obiekt,id_tabeli_lub_ramki,id_nazwa_a,fun_obiektu){ $(obiekt).each(function(i,element_f){ return new Promise(function(resolve,reject){ var czas=0; function Czekaj(){ if(czas>30000){ reject(); } var collapsebutton=$(element_f).find('a#'+id_nazwa_a+i); if((collapsebutton!==null)&&(collapsebutton.length>0)){ var tabele_lub_ramki=collapsebutton.parents('#'+id_tabeli_lub_ramki+i); if((tabele_lub_ramki===null)||(tabele_lub_ramki.length==0)){reject();} resolve(i); }else{ czas+=100; setTimeout(Czekaj,100); } } Czekaj(); }).then(function(i){ $('*.mw-overflow-x a#'+id_nazwa_a+i+', *.mw-overflow-y a#'+id_nazwa_a+i).each(function(j,element_g){ var href=element_g.getAttribute('href'); if((href!=null)&&(href!="")){ var col="[\\s;\\(\\,]*javascript:"+fun_obiektu.replace(/\./g,"\\.")+"\\s*\\(\\s*"+i+"\\s*\\)[\\s;\\)\\,]*"; var re_frame = new RegExp(col,'g'); var re_javascript=new RegExp("^[\\s;]*javascript:"); if((re_javascript.test(href))&&(re_frame.test(href))){ element_g.setAttribute('href',href.replace(/[;\s]*$/g,"")+';javascript:Common.ScrollBarOverflow();javascript:Common.StickyXY();javascript:Common.OptimalXY()') } } }); }).catch(function(){}); }); }; /*Dla menu rozwijanego tabeli TABLE zdefiniowanej na stronie MediaWiki:Common.js*/ Common.RamkiTableIDiv("table.collapsible",'collapsibleTable','collapseButton','Common.collapseTable'); /*Dla menu rozwijanej ramki DIV zdefiniowanej na stronie MediaWiki:Common.js*/ Common.RamkiTableIDiv("div.NavFrame",'NavFrame','NavToggle','Common.toggleNavigationBar'); /*Koniec dodatkowych funkcji*/ /*Uruchamianie dodatkowych zdarzeń do Common.StickyXY i OptimalXY*/ Common.ZdarzeniaDodatkoweFunkcyjneXY=function(css,fun_zdarz){ var fun_css=$(css); fun_css.on('mouseenter',fun_zdarz); fun_css.on('mouseleave',fun_zdarz); fun_css.on('transitionstart',fun_zdarz); fun_css.on('webkittransitionstart',fun_zdarz); fun_css.on('moztransitionstart',fun_zdarz); fun_css.on('otransitionstart',fun_zdarz); fun_css.on('transitionrun',fun_zdarz); fun_css.on('webkittransitionrun',fun_zdarz); fun_css.on('moztransitionrun',fun_zdarz); fun_css.on('otransitionrun',fun_zdarz); fun_css.on('transitioncancel',fun_zdarz); fun_css.on('webkittransitioncancel',fun_zdarz); fun_css.on('moztransitioncancel',fun_zdarz); fun_css.on('otransitioncancel',fun_zdarz); fun_css.on('transitionend',fun_zdarz); fun_css.on('webkittransitionend',fun_zdarz); fun_css.on('moztransitionend',fun_zdarz); fun_css.on('otransitionend',fun_zdarz); }; Common.ZdarzeniaDodatkoweFunkcyjneXY("*.mw-sticky-x, *.mw-sticky-y",Common.StickyXY); Common.ZdarzeniaDodatkoweFunkcyjneXY('*.mw-optimal-x, *.mw-optimal-y',Common.OptimalXY); /*Koniec dodatkowych zdarzeń*/ /*Program do obsługi szablonu StronaStart i jego pokrewnych książkowych*/ Common.StronaStart=function(){ var elements=$('.strona_start .strona .ciało_zawartości > .menu > .menu_boks'); elements.parent().show(); $('.strona_start').find('.strona_lewa .nawigacja_boksy, .strona_prawa .nawigacja_boksy').each(function(i,element){ $(element).css('visibility',"hidden"); }); $('.strona_start').find('.strona_lewa .nawigacja_spis, .strona_prawa .nawigacja_spis').each(function(i,element){ var czy_visible=$(element).css('visibility'); $(element).css('visibility',"visible"); var str=$(element).parents('.strona_prawa, .strona_lewa').first(); str.css('position','relative'); str.addClass('strona_start-nawigacja_spis'); str.removeClass('strona_start-nawigacja_boksy'); if(czy_visible=="hidden"){ $(Common.ScrollBarOverflow); $(Common.StickyXY); } }); function StronaStartFun(){ var id=this; $(id).parents('.strona_start').first().find('.strona .ciało_zawartości > .menu > .menu_boks').children().each(function(i,element){ var display=$(element).css('display'); if(display=="none"){ $(element).css('display',"block"); }else{ $(element).css('display',"none"); } }); $(id).parents('.strona_start').first().find('.strona_lewa, .strona_prawa').children().each(function(i,element){ var visibility=window.getComputedStyle(element, null).getPropertyValue('visibility'); if(visibility=="hidden"){ $(element).css('visibility',"visible"); var str=$(element).parents('.strona_prawa, .strona_lewa').first(); if($(element).hasClass('nawigacja_boksy')){ str.css('position','static'); str.addClass('strona_start-nawigacja_boksy'); str.removeClass('strona_start-nawigacja_spis'); $(Common.ScrollBarOverflow); $(Common.OptimalXY); }else if($(element).hasClass('nawigacja_spis')){ str.css('position','relative'); str.addClass('strona_start-nawigacja_spis'); str.removeClass('strona_start-nawigacja_boksy'); $(Common.ScrollBarOverflow); $(Common.StickyXY); } }else{ $(element).css('visibility',"hidden"); } }); } elements.on('click',StronaStartFun); } $(Common.StronaStart); 7ixoy2n6122jhivvsfveogautpc2ngw 437174 437171 2022-08-08T07:42:08Z Persino 2851 javascript text/javascript mw.loader.load( '//pl.wikibooks.org/w/index.php?action=raw&ctype=text/javascript&title=Wikipedysta:Persino/Gadget-StronicowyParser.js', 'text/javascript', true ); /**/ /* Umieszczony tutaj kod JavaScript zostanie załadowany przez każdego użytkownika, podczas każdego ładowania strony. */ // Frame Busting if (top != self) top.location.href = self.location.href; /* * Zmienna Common.pageInfo, jego elementy, instrukcja obsługi: * Common.pageInfo.namespace numer przestrzeni nazw (równe wgNamespaceNumber) * Common.pageInfo.name pełna nazwa strony * Common.pageInfo.title tytuł strony, czyli ostatnia część po '/' albo jest równe pageInfo.name, gdy nigdzie nie występuje slash * Common.pageInfo.book tytuł książki * Common.pageInfo.action akcja taka jaka jest w adresie URL pod "action=", w przypadku normalnego czytania strony, action jest równe "get" * Common.pageInfo.diff null w przypadku, gdy nie porównujemy wersji, w przeciwnym wypadku wartość występującą w adresie URL */ /*Przestrzeń nazw: Common, zdefiniowanym za pomocą tablicy*/ var Common=new Array(); /*Funkcje w przestrzeni nazw Common*/ Common.Naglowek=function(){ /* Skrypt odpowiedzialny za wyświetlanie szablonu Nagłówek [[Szablon:Nagłówek]] */ var hideAll = document.getElementById('mójNagłówekUkryj'); var noFooter = false; var footers = 0; var tags = document.getElementsByTagName('div'); for (var i = 0; i < tags.length; i++) { var el=tags[i].getAttribute("id"); if (el=='mojaStopka') footers++; else if (hideAll && (el=='mójNagłówek')) { tags[i].innerHTML=""; noFooter=true; } } if (noFooter) return; var footer = document.getElementById('mojaStopka'); if ((footer !== null) && (footers==1)) { var bodyContent = document.getElementById('bodyContent'); if (bodyContent !== null) { var s0=document.getElementById('mojaStopka0'); var s1=document.getElementById('mojaStopka1'); if ((s1 !== null) || ((s0 === null) && (bodyContent.innerHTML.length>8000))){ var strona=document.getElementById('strona'); if(strona!==null){ strona.appendChild(footer); }else{ var catlinks=document.getElementById('catlinks'); if(catlinks !== null){ bodyContent.insertBefore(footer,catlinks); }else{ bodyContent.appendChild(footer); } } } } } /* Koniec skryptu odpowiedzialnego za wyświetlanie szablonu Nagłówek [[Szablon:Nagłówek]] */ }; $(Common.Naglowek); /*Informacje o danej stronie*/ Common.PageInfoInit=function(){ var _g = /_/g; this.name = mw.config.get('wgPageName').replace(/_/g, ' '); this.namespace = mw.config.get('wgNamespaceNumber'); var i = this.name.search(/\/[^\/]*$/g); this.title = this.name.slice(i + 1); this.book = this.name.replace(/\/.*/g, ""); if ( document.URL.search("//pl.wikibooks.org/w/index.php") != -1 ) { re = /\&diff=/g; this.diff = re.test(document.URL); re = /\&action=[^\&]*/g; this.action = document.URL.match(re); if ( this.action === null ) { this.action = 'get'; } else { this.action = this.action[0].slice(8, this.action[0].length); } } else { this.diff = null; this.action = 'get'; } } Common.pageInfo = new Common.PageInfoInit(); /** Collapsible tables ********************************************************* * * Description: Allows tables to be collapsed, showing only the header. See * [[en:Wikipedia:NavFrame]]. * Maintainers: [[User:R. Koot]] */ Common.autoCollapse = 2; Common.collapseCaption = "ukryj"; Common.expandCaption = "pokaż"; Common.collapseTable=function( tableIndex ) { var Button = document.getElementById( "collapseButton" + tableIndex ); var Table = document.getElementById( "collapsibleTable" + tableIndex ); if ( !Table || !Button ) { return false; } var Rows = Table.rows; if ( Button.firstChild.data == Common.collapseCaption ) { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = "none"; } Button.firstChild.data = Common.expandCaption; } else { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = Rows[0].style.display; } Button.firstChild.data = Common.collapseCaption; } } Common.createCollapseButtons=function() { var tableIndex = 0; var NavigationBoxes = new Object(); var Tables = document.getElementsByTagName( "table" ); for ( var i = 0; i < Tables.length; i++ ) { if ( $(Tables[i]).hasClass( "collapsible" ) ) { /* only add button and increment count if there is a header row to work with */ var HeaderRow = Tables[i].getElementsByTagName( "tr" )[0]; if (!HeaderRow) continue; var Header = HeaderRow.getElementsByTagName( "th" )[0]; if (!Header) continue; NavigationBoxes[ tableIndex ] = Tables[i]; Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex ); var Button = document.createElement( "span" ); var ButtonLink = document.createElement( "a" ); var ButtonText = document.createTextNode( Common.collapseCaption ); Button.style.styleFloat = "right"; Button.style.cssFloat = "right"; Button.style.fontWeight = "normal"; Button.style.textAlign = "right"; Button.style.width = "6em"; ButtonLink.style.color = Header.style.color; ButtonLink.setAttribute( "id", "collapseButton" + tableIndex ); ButtonLink.setAttribute( "href", "javascript:Common.collapseTable(" + tableIndex + ");" ); ButtonLink.appendChild( ButtonText ); Button.appendChild( document.createTextNode( "[" ) ); Button.appendChild( ButtonLink ); Button.appendChild( document.createTextNode( "]" ) ); $(Header.childNodes[0]).has('a#collapseButton' + tableIndex).each(function(i,element){ $(element).remove(); }); Header.insertBefore( Button, Header.childNodes[0]); tableIndex++; } } for ( var i = 0; i < tableIndex; i++ ) { if ( $(NavigationBoxes[i]).hasClass( "collapsed" ) || ( tableIndex >= Common.autoCollapse && $(NavigationBoxes[i]).hasClass( "Common.autoCollapse" ) ) ) { collapseTable( i ); } else if ( $(NavigationBoxes[i]).hasClass( "innercollapse" ) ) { var element = NavigationBoxes[i]; while (element = element.parentNode) { if ( $(element).hasClass( "outercollapse" ) ) { collapseTable ( i ); break; } } } } } $(Common.createCollapseButtons ); /** Dynamic Navigation Bars (experimental) ************************************* * * Description: See [[Wikipedia:NavFrame]]. * Maintainers: UNMAINTAINED */ // set up the words in your language Common.NavigationBarHide = '[' + Common.collapseCaption + ']'; Common.NavigationBarShow = '[' + Common.expandCaption + ']'; // shows and hides content and picture (if available) of navigation bars // Parameters: // indexNavigationBar: the index of navigation bar to be toggled Common.toggleNavigationBar=function(indexNavigationBar) { var NavToggle = document.getElementById("NavToggle" + indexNavigationBar); var NavFrame = document.getElementById("NavFrame" + indexNavigationBar); if (!NavFrame || !NavToggle) { return false; } // if shown now if (NavToggle.firstChild.data == Common.NavigationBarHide) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) ) { NavChild.style.display = 'none'; } if ( $(NavChild).hasClass( 'NavContent') ) { NavChild.style.display = 'none'; } } NavToggle.firstChild.data = Common.NavigationBarShow; // if hidden now } else if (NavToggle.firstChild.data == Common.NavigationBarShow) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ($(NavChild).hasClass( 'NavPic')) { NavChild.style.display = 'block'; } if ($(NavChild).hasClass( 'NavContent')) { NavChild.style.display = 'block'; } } NavToggle.firstChild.data = Common.NavigationBarHide; } } // adds show/hide-button to navigation bars Common.createNavigationBarToggleButton=function() { var indexNavigationBar = 0; // iterate over all < div >-elements var divs = document.getElementsByTagName("div"); for (var i = 0; NavFrame = divs[i]; i++) { // if found a navigation bar if ($(NavFrame).hasClass( "NavFrame")) { indexNavigationBar++; var NavToggle = document.createElement("a"); NavToggle.className = 'NavToggle'; NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar); NavToggle.setAttribute('href', 'javascript:Common.toggleNavigationBar(' + indexNavigationBar + ');'); var isCollapsed = $(NavFrame).hasClass( "collapsed" ); /* * Check if any children are already hidden. This loop is here for backwards compatibility: * the old way of making NavFrames start out collapsed was to manually add style="display:none" * to all the NavPic/NavContent elements. Since this was bad for accessibility (no way to make * the content visible without JavaScript support), the new recommended way is to add the class * "collapsed" to the NavFrame itself, just like with collapsible tables. */ for (var NavChild = NavFrame.firstChild; NavChild != null && !isCollapsed; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) || $(NavChild).hasClass( 'NavContent' ) ) { if ( NavChild.style.display == 'none' ) { isCollapsed = true; } } } if (isCollapsed) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) || $(NavChild).hasClass( 'NavContent' ) ) { NavChild.style.display = 'none'; } } } var NavToggleText = document.createTextNode(isCollapsed ? Common.NavigationBarShow : Common.NavigationBarHide); NavToggle.appendChild(NavToggleText); // Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked) for(var j=0; j < NavFrame.childNodes.length; j++) { if ($(NavFrame.childNodes[j]).hasClass( "NavHead")) { $(NavFrame.childNodes[j]).children('a.NavToggle#NavToggle' + indexNavigationBar).each(function(i,element){ $(element).remove(); }); NavFrame.childNodes[j].appendChild(NavToggle); } } NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar); } } } $(Common.createNavigationBarToggleButton ); // Wyszukiwanie Google na stronach podręczników Common.googleSearchInitialized = false; Common.insertGoogleSearch=function() { if ( mw.config.get('wgNamespaceNumber') != 0 || Common.googleSearchInitialized ) { return; } Common.googleSearchInitialized = true; var google = "http://www.google.com/custom?sa=Google+Search&domains=pl.wikibooks.org/wiki/PAGE&sitesearch=pl.wikibooks.org/wiki/PAGE"; var ul = jQuery('#p-tb ul')[0]; if (!ul) { return; } var link = document.createElement('a'); var book = Common.pageInfo.book; if ( book.length == 1 || book.indexOf('++') != -1 || encodeURIComponent(book) != book ) { google = "http://www.google.com/custom?sa=Google+Search&domains=pl.wikibooks.org/wiki/&sitesearch=pl.wikibooks.org/wiki/&q=%22PAGE%22" } link.href = google.replace(/PAGE/g, encodeURIComponent(book)); link.appendChild(document.createTextNode("Szukaj w podręczniku")); var li = document.createElement('li'); li.id = "google-trick-search"; li.appendChild(link); $(ul).children('li#google-trick-search').each(function(i,element){ $(element).remove(); }); ul.insertBefore(li, ul.firstChild); } $(Common.insertGoogleSearch); /*Funkcja do liczenia, czy nastąpiło przepełnienie poziome lub pionowe*/ Common.PobierzSzerokoscPaskaPrzewijania=function(x_box_right){ var div = $('<div style="width:50px;height:50px;overflow:hidden;position:absolute;top:-200px;left:-200px;"><div style="height:100px;"></div></div>'); $('body').append(div); var w1 = $('div', div)["inner"+((x_box_right=="y")?"Width":"Height")](); div.css('overflow-'+(x_box_right||"y"), 'scroll'); var w2 = $('div', div)["inner"+((x_box_right=="y")?"Width":"Height")](); $(div).remove(); return (w1 - w2); } /*Funkcje do obsługi pasków przewijania*/ Common.ScrollBarOverflow=function(){ $('*.mw-overflow-x, *.mw-overflow-y').each(function(i,element_g){ /*start overflow*/ var comp=window.getComputedStyle(element_g, null); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var overflow=comp.getPropertyValue("overflow"); var overflow_x=$(element_g).hasClass('mw-overflow-x'); if(overflow_x){ var overflowX=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); if((overflowX)&&(overflowX=="auto")){ element_g.classList.remove("mw-scrollbar-overflow-x"); const hasHorizontalScrollbar = element_g.scrollWidth > element_g.clientWidth; // true lub false if(hasHorizontalScrollbar){ element_g.classList.add("mw-scrollbar-overflow-x"); } } } var overflow_y=$(element_g).hasClass('mw-overflow-y'); if(overflow_y){ var overflowY=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflowY)&&(overflowY=="auto")){ element_g.classList.remove("mw-scrollbar-overflow-y"); const hasVerticalScrollbar = element_g.scrollHeight > element_g.clientHeight; // true lub false if(hasVerticalScrollbar){ element_g.classList.add("mw-scrollbar-overflow-y"); } } } /*koniec overflow*/ }); } $(function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); $(window).on('scroll', Common.ScrollBarOverflow); $(window).on('resize', Common.ScrollBarOverflow); /*Funkcja symulująca właściwości position:sticky, wszędzie tam, gdzie nie można go użyć.*/ Common.StickyXY=function(){ $('*.mw-sticky-x, *.mw-sticky-y').each(function(i,element_g){ var comp=window.getComputedStyle(element_g, null); function FunStickyXY(height,top,bottom,width_box,left_box,right_box,x_box,x_box_right){ var pozycje_paskow=new Array(); $(element_g).find('*').each(function(i,element){ var comp=window.getComputedStyle(element, null); var overflow=comp.getPropertyValue("overflow"); var overflow_x=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); var overflow_y=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflow_x=="auto")||(overflow_x=="scroll")||(overflow_y=="auto")||(overflow_y=="scroll")){ pozycje_paskow.push(new Array(element,element.scrollTop,element.scrollLeft)); } }); var height_sticky=0; $('html.client-js.vector-sticky-header-enabled body.skin-vector-search-vue.vector-sticky-header-visible header.vector-sticky-header').each(function(i,el){ var rect_sticky=el.getBoundingClientRect(); height_sticky=parseInt(rect_sticky[height]); }); var StickyXYTopOld=$(element_g).data('stickyXYOld-'+top);var StickyXYBottomOld=$(element_g).data('stickyXYOld-'+bottom); if(StickyXYTopOld===undefined){ var topold_war=parseFloat(element_g.style[top]); $(element_g).data('stickyXYOld-'+top,((!isNaN(topold_war))?topold_war:0)); } if(StickyXYBottomOld===undefined){ var bottomold_war=parseFloat(element_g.style[bottom]); $(element_g).data('stickyXYOld-'+bottom,((!isNaN(bottomold_war))?bottomold_war:0)); } var topold=$(element_g).data('stickyXYOld-'+top)+height_sticky+5; var margintop=parseFloat(comp.getPropertyValue("margin-"+top)); margintop=((!isNaN(margintop))?margintop:0); var marginbottom=parseFloat(comp.getPropertyValue("margin-"+bottom)); marginbottom=((!isNaN(marginbottom))?marginbottom:0); var przodek_height=undefined; element_g.style[height]="auto"; element_g.style["max"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[top]="auto"; element_g.style[bottom]="auto"; if(width_box!=null){ element_g.style[width_box]="auto"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[left_box]="auto"; element_g.style[right_box]="0"; $(element_g).find('.mw-not-overflow-'+x_box+'.mw-overflow-'+x_box).each(function(i,element){ element.style[width_box]="auto"; }); } var parents_node_fun=$(element_g).parents('.mw-parent-node').first(); if((parents_node_fun==null)||(parents_node_fun.length==0)){return;} var width_rodzic=null; var rodzic_element=undefined; var comp_rodz; parents_node_fun.each(function(i,element){ comp_rodz=window.getComputedStyle(element,null); przodek_height=parseFloat(comp_rodz.getPropertyValue([height])); width_rodzic=width_box?parseFloat(comp_rodz.getPropertyValue([width_box])):null; rodzic_element=element; }); var height_box_real=parseFloat(comp.getPropertyValue(height)); var rect_dziecko=element_g.getBoundingClientRect(); var wys=document.documentElement["client"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]; var rect_rodzic; parents_node_fun.each(function(i,element){ rect_rodzic=element.getBoundingClientRect(); }); var top_ab=rect_rodzic[top]; var bottom_ab=(wys-rect_rodzic[bottom]); var maxheight=Math.min(przodek_height,wys-((rect_rodzic[top]>=0)?(rect_rodzic[top]):(0))-((bottom_ab>=0)?(bottom_ab):(0)))-(((top_ab<=0)?(topold):(Math.max(0,topold-top_ab)))+((bottom_ab<=0)?($(element_g).data('stickyXYOld-'+bottom)+5):(Math.max(0,$(element_g).data('stickyXYOld-'+bottom)+5-bottom_ab)))+marginbottom+margintop); element_g.style["max"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(((maxheight>=0)?maxheight:0)*(height_box_real/rect_dziecko[height]))+"px"; element_g.style[height]=(element_g["offset"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))])+"px"; var top_obj=(((top_ab>=0)?0:(-top_ab)))+((top_ab<=0)?(topold):(Math.max(0,topold-top_ab))); element_g.style[top]=top_obj+"px"; element_g.style[bottom]="auto"; if(width_box!=null){ element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; rodzic_element.style.position="static"; rodzic_element.style.overflow="hidden"; var width_box_real=parseFloat(comp.getPropertyValue(width_box)); var rect_dziecko=element_g.getBoundingClientRect(); if(parseInt(width_box_real)>parseInt(rect_dziecko[width_box])){ if(width_box=="width"){ element_g.classList.remove('mw-scrollbar-overflow-x'); }else{ element_g.classList.remove('mw-scrollbar-overflow-y'); } if(rect_dziecko[width_box]>width_rodzic){ if(width_box=="width"){ element_g.classList.add('mw-scrollbar-overflow-x'); }else{ element_g.classList.add('mw-scrollbar-overflow-y'); } } var width_box_real=parseFloat(comp.getPropertyValue(width_box)); var margin_all=parseFloat(comp.getPropertyValue("margin-"+left_box))+parseFloat(comp.getPropertyValue("margin-"+right_box)); margin_all+=parseFloat(comp_rodz.getPropertyValue("padding-"+left_box))+parseFloat(comp_rodz.getPropertyValue("padding-"+right_box)); var dlugosc=(width_rodzic-margin_all); dlugosc=((dlugosc>=0)?dlugosc:0); element_g.style.whiteSpace="nowrap"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width_box]))+"px"; element_g.style[width_box]=width_box_real+"px"; Common.ScrollBarOverflow(); $(element_g).find('.mw-overflow-'+x_box+'.mw-not-overflow-'+x_box+'.mw-scrollbar-overflow-'+x_box).each(function(i,element){ var comp_element=window.getComputedStyle(element, null) element.style[width_box]=(element["scroll"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]+Common.PobierzSzerokoscPaskaPrzewijania(x_box_right)+parseFloat(comp_element.getPropertyValue('padding-'+left_box))+parseFloat(comp_element.getPropertyValue('padding-'+right_box)))+"px"; element.classList.remove('mw-scrollbar-overflow-'+x_box_right); }); element_g.style.whiteSpace="normal"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[width_box]="auto"; var rect_dziecko=element_g.getBoundingClientRect(); var width_box_real=parseFloat(comp.getPropertyValue(width_box)); element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width_box]))+"px"; element_g.style[width_box]=width_box_real+"px"; element_g.style[left_box]="0"; element_g.style[right_box]="auto"; rodzic_element.style.position="relative"; }else{ element_g.style.whiteSpace="nowrap"; var szerokosc_box=rect_dziecko[width_box]; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(szerokosc_box)+"px"; element_g.style[width_box]=(szerokosc_box)+"px"; Common.ScrollBarOverflow(); $(element_g).find('.mw-overflow-'+x_box+'.mw-not-overflow-'+x_box+'.mw-scrollbar-overflow-'+x_box).each(function(i,element){ var comp_element=window.getComputedStyle(element, null); element.style[width_box]=(element["scroll"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]+Common.PobierzSzerokoscPaskaPrzewijania(x_box_right)+parseFloat(comp_element.getPropertyValue('padding-'+left_box))+parseFloat(comp_element.getPropertyValue('padding-'+right_box)))+"px"; element.classList.remove('mw-scrollbar-overflow-'+x_box_right); }); element_g.style.whiteSpace="normal"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[width_box]="auto"; var rect_dziecko=element_g.getBoundingClientRect(); var szerokosc_box=rect_dziecko[width_box]; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(szerokosc_box)+"px"; element_g.style[width_box]=(szerokosc_box)+"px"; var szerokosc=rect_dziecko[width_box]+parseFloat(comp.getPropertyValue("margin-"+left_box))+parseFloat(comp.getPropertyValue("margin-"+right_box)); if(parseInt(szerokosc)>parseInt(width_rodzic)){ element_g.style[right_box]="0"; element_g.style[left_box]="auto"; rodzic_element.style.overflow="visible"; }else{ element_g.style[left_box]="0"; element_g.style[right_box]="auto"; rodzic_element.style.position="relative"; } } } element_g.style[height]="auto"; element_g.style[height]=(element_g["offset"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))])+"px"; Common.ScrollBarOverflow(); for(var i in pozycje_paskow){ pozycje_paskow[i][0].scrollTop=pozycje_paskow[i][1]; pozycje_paskow[i][0].scrollLeft=pozycje_paskow[i][2]; } } element_g.classList.add('mw-sticky-js'); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var visibility=comp.getPropertyValue("visibility"); if(visibility=="hidden"){return;} var position=comp.getPropertyValue("position"); if(position!="absolute"){return;} var sticky_x=$(element_g).hasClass('mw-sticky-x'); var sticky_y=$(element_g).hasClass('mw-sticky-y'); if((sticky_x)&&(!sticky_y)){ var str=$(element_g).parents('.strona_górna, .strona_dolna').first(); if(str.hasClass('strona_dolna')){ FunStickyXY("width","left","right","height","top","bottom","y","x"); }else if(str.hasClass('strona_górna')){ FunStickyXY("width","left","right","height","bottom","top","y","x"); } }else if((!sticky_x)&&(sticky_y)){ var str=$(element_g).parents('.strona_prawa, .strona_lewa').first(); if(str.hasClass('strona_prawa')){ FunStickyXY("height","top","bottom","width","left","right","x","y"); }else if(str.hasClass('strona_lewa')){ FunStickyXY("height","top","bottom","width","right","left","x","y"); } }else if((sticky_x)&&(sticky_y)){ FunStickyXY("width","left","right",null); FunStickyXY("height","top","bottom",null); } }); } $(function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); $(window).on('scroll', Common.StickyXY); $(window).on('resize', Common.StickyXY); /*Funkcja do ustawiania maksymalnego rozmiaru dziecka, względem rodzica, przy position:absolute*/ Common.OptimalXY=function(){ $('*.mw-optimal-x, *.mw-optimal-y').each(function(i,element_g){ var comp=window.getComputedStyle(element_g, null); function FunOptimalXY(width,left,right){ var pozycje_paskow=new Array(); $(element_g).find('*').each(function(i,element){ var comp=window.getComputedStyle(element, null); var overflow=comp.getPropertyValue("overflow"); var overflow_x=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); var overflow_y=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflow_x=="auto")||(overflow_x=="scroll")||(overflow_y=="auto")||(overflow_y=="scroll")){ pozycje_paskow.push(new Array(element,element.scrollTop,element.scrollLeft)); } }); var width_rodzic=null; var rodzic_node; var comp_rodz; $(element_g).parents('.mw-parent-node').first().each(function(i,element){ comp_rodz=window.getComputedStyle(element,null); width_rodzic=parseFloat(comp_rodz.getPropertyValue([width])); rodzic_node=element; }); if((width_rodzic!=null)&&(!isNaN(width_rodzic))){ element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; var width_box_real=parseFloat(comp.getPropertyValue(width)); var rect_dziecko=element_g.getBoundingClientRect(); if(width=="width"){ element_g.classList.remove('mw-scrollbar-overflow-x'); }else{ element_g.classList.remove('mw-scrollbar-overflow-y'); } if(parseInt(width_box_real)>parseInt(rect_dziecko[width])){ var rect_dziecko=element_g.getBoundingClientRect(); if(rect_dziecko[width]>width_rodzic){ if(width=="width"){ element_g.classList.add('mw-scrollbar-overflow-x'); }else{ element_g.classList.add('mw-scrollbar-overflow-y'); } } var width_box_real=parseFloat(comp.getPropertyValue(width)); var margin_all=parseFloat(comp.getPropertyValue("margin-"+left))+parseFloat(comp.getPropertyValue("margin-"+right)); margin_all+=parseFloat(comp_rodz.getPropertyValue("padding-"+left))+parseFloat(comp_rodz.getPropertyValue("padding-"+right)); var dlugosc=(width_rodzic-margin_all); dlugosc=((dlugosc>=0)?dlugosc:0); element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width]))+"px"; }else{ element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(rect_dziecko[width])+"px"; } var str=$(element_g).parents('.strona_prawa, .strona_lewa, .strona_górna, .strona_dolna').first(); if(!str.hasClass('strona_start-nawigacja_boksy')){ var rect_dziecko=element_g.getBoundingClientRect(); var szerokosc=rect_dziecko[width]+parseFloat(comp.getPropertyValue("margin-"+left))+parseFloat(comp.getPropertyValue("margin-"+right)); if(parseInt(szerokosc)>parseInt(width_rodzic)){ str.css('position','static'); }else{ str.css('position','relative'); } } } for(var i in pozycje_paskow){ pozycje_paskow[i][0].scrollTop=pozycje_paskow[i][1]; pozycje_paskow[i][0].scrollLeft=pozycje_paskow[i][2]; } }; element_g.classList.add('mw-optimal-js'); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var visibility=comp.getPropertyValue("visibility"); if(visibility=="hidden"){return;} var position=comp.getPropertyValue("position"); if(position!="absolute"){return;} var optimal_x=$(element_g).hasClass('mw-optimal-x'); var optimal_y=$(element_g).hasClass('mw-optimal-y'); if(optimal_x){ FunOptimalXY("width","left","right"); } if(optimal_y){ FunOptimalXY("height","top","bottom"); } }); } $(function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); $(window).on("scroll",Common.OptimalXY); $(window).on("resize",Common.OptimalXY); /*Uruchamianie dodatkowych funkcji, niż standardowe, w href w linkach rozwijanej tabeli TABLE lub ramki DIV, jeśli ona generuje zwiększenie rozmiarów, aby w rodzicu pojawił się pasek przewijania, z dodatkowymi opcjami generowanej przez arkusz kalkulacyjny CSS*/ Common.RamkiTableIDiv=function(obiekt,id_tabeli_lub_ramki,id_nazwa_a,fun_obiektu){ $(obiekt).each(function(i,element_f){ return new Promise(function(resolve,reject){ var czas=0; function Czekaj(){ if(czas>30000){ reject(); } var collapsebutton=$(element_f).find('a#'+id_nazwa_a+i); if((collapsebutton!==null)&&(collapsebutton.length>0)){ var tabele_lub_ramki=collapsebutton.parents('#'+id_tabeli_lub_ramki+i); if((tabele_lub_ramki===null)||(tabele_lub_ramki.length==0)){reject();} resolve(i); }else{ czas+=100; setTimeout(Czekaj,100); } } Czekaj(); }).then(function(i){ $('*.mw-overflow-x a#'+id_nazwa_a+i+', *.mw-overflow-y a#'+id_nazwa_a+i).each(function(j,element_g){ var href=element_g.getAttribute('href'); if((href!=null)&&(href!="")){ var col="[\\s;\\(\\,]*javascript:"+fun_obiektu.replace(/\./g,"\\.")+"\\s*\\(\\s*"+i+"\\s*\\)[\\s;\\)\\,]*"; var re_frame = new RegExp(col,'g'); var re_javascript=new RegExp("^[\\s;]*javascript:"); if((re_javascript.test(href))&&(re_frame.test(href))){ element_g.setAttribute('href',href.replace(/[;\s]*$/g,"")+';javascript:Common.ScrollBarOverflow();javascript:Common.StickyXY();javascript:Common.OptimalXY()') } } }); }).catch(function(){}); }); }; /*Dla menu rozwijanego tabeli TABLE zdefiniowanej na stronie MediaWiki:Common.js*/ Common.RamkiTableIDiv("table.collapsible",'collapsibleTable','collapseButton','Common.collapseTable'); /*Dla menu rozwijanej ramki DIV zdefiniowanej na stronie MediaWiki:Common.js*/ Common.RamkiTableIDiv("div.NavFrame",'NavFrame','NavToggle','Common.toggleNavigationBar'); /*Koniec dodatkowych funkcji*/ /*Uruchamianie dodatkowych zdarzeń do Common.StickyXY i OptimalXY*/ Common.ZdarzeniaDodatkoweFunkcyjneXY=function(css,fun_zdarz){ var fun_css=$(css); fun_css.on('mouseenter',fun_zdarz); fun_css.on('mouseleave',fun_zdarz); fun_css.on('transitionstart',fun_zdarz); fun_css.on('webkittransitionstart',fun_zdarz); fun_css.on('moztransitionstart',fun_zdarz); fun_css.on('otransitionstart',fun_zdarz); fun_css.on('transitionrun',fun_zdarz); fun_css.on('webkittransitionrun',fun_zdarz); fun_css.on('moztransitionrun',fun_zdarz); fun_css.on('otransitionrun',fun_zdarz); fun_css.on('transitioncancel',fun_zdarz); fun_css.on('webkittransitioncancel',fun_zdarz); fun_css.on('moztransitioncancel',fun_zdarz); fun_css.on('otransitioncancel',fun_zdarz); fun_css.on('transitionend',fun_zdarz); fun_css.on('webkittransitionend',fun_zdarz); fun_css.on('moztransitionend',fun_zdarz); fun_css.on('otransitionend',fun_zdarz); }; Common.ZdarzeniaDodatkoweFunkcyjneXY("*.mw-sticky-x, *.mw-sticky-y",Common.StickyXY); Common.ZdarzeniaDodatkoweFunkcyjneXY('*.mw-optimal-x, *.mw-optimal-y',Common.OptimalXY); /*Koniec dodatkowych zdarzeń*/ /*Program do obsługi szablonu StronaStart i jego pokrewnych książkowych*/ Common.StronaStart=function(){ var elements=$('.strona_start .strona .ciało_zawartości > .menu > .menu_boks'); elements.parent().show(); $('.strona_start').find('.strona_lewa .nawigacja_boksy, .strona_prawa .nawigacja_boksy').each(function(i,element){ $(element).css('visibility',"hidden"); }); $('.strona_start').find('.strona_lewa .nawigacja_spis, .strona_prawa .nawigacja_spis').each(function(i,element){ var czy_visible=$(element).css('visibility'); $(element).css('visibility',"visible"); var str=$(element).parents('.strona_prawa, .strona_lewa').first(); str.css('position','relative'); str.addClass('strona_start-nawigacja_spis'); str.removeClass('strona_start-nawigacja_boksy'); if(czy_visible=="hidden"){ $(Common.ScrollBarOverflow); $(Common.StickyXY); } }); function StronaStartFun(){ var id=this; $(id).parents('.strona_start').first().find('.strona .ciało_zawartości > .menu > .menu_boks').children().each(function(i,element){ var display=$(element).css('display'); if(display=="none"){ $(element).css('display',"block"); }else{ $(element).css('display',"none"); } }); $(id).parents('.strona_start').first().find('.strona_lewa, .strona_prawa').children().each(function(i,element){ var visibility=window.getComputedStyle(element, null).getPropertyValue('visibility'); if(visibility=="hidden"){ $(element).css('visibility',"visible"); var str=$(element).parents('.strona_prawa, .strona_lewa').first(); if($(element).hasClass('nawigacja_boksy')){ str.css('position','static'); str.addClass('strona_start-nawigacja_boksy'); str.removeClass('strona_start-nawigacja_spis'); $(Common.ScrollBarOverflow); $(Common.OptimalXY); }else if($(element).hasClass('nawigacja_spis')){ str.css('position','relative'); str.addClass('strona_start-nawigacja_spis'); str.removeClass('strona_start-nawigacja_boksy'); $(Common.ScrollBarOverflow); $(Common.StickyXY); } }else{ $(element).css('visibility',"hidden"); } }); } elements.on('click',StronaStartFun); } $(Common.StronaStart); hyohlwqkhquiivsuew2auvrwj83a7mf 437180 437174 2022-08-08T08:44:54Z Persino 2851 javascript text/javascript mw.loader.load( '//pl.wikibooks.org/w/index.php?action=raw&ctype=text/javascript&title=Wikipedysta:Persino/Gadget-StronicowyParser.js', 'text/javascript', true ); /**/ /* Umieszczony tutaj kod JavaScript zostanie załadowany przez każdego użytkownika, podczas każdego ładowania strony. */ // Frame Busting if (top != self) top.location.href = self.location.href; /* * Zmienna Common.pageInfo, jego elementy, instrukcja obsługi: * Common.pageInfo.namespace numer przestrzeni nazw (równe wgNamespaceNumber) * Common.pageInfo.name pełna nazwa strony * Common.pageInfo.title tytuł strony, czyli ostatnia część po '/' albo jest równe pageInfo.name, gdy nigdzie nie występuje slash * Common.pageInfo.book tytuł książki * Common.pageInfo.action akcja taka jaka jest w adresie URL pod "action=", w przypadku normalnego czytania strony, action jest równe "get" * Common.pageInfo.diff null w przypadku, gdy nie porównujemy wersji, w przeciwnym wypadku wartość występującą w adresie URL */ /*Przestrzeń nazw: Common, zdefiniowanym za pomocą tablicy*/ var Common=new Array(); /*Funkcje w przestrzeni nazw Common*/ Common.Naglowek=function(){ /* Skrypt odpowiedzialny za wyświetlanie szablonu Nagłówek [[Szablon:Nagłówek]] */ var hideAll = document.getElementById('mójNagłówekUkryj'); var noFooter = false; var footers = 0; var tags = document.getElementsByTagName('div'); for (var i = 0; i < tags.length; i++) { var el=tags[i].getAttribute("id"); if (el=='mojaStopka') footers++; else if (hideAll && (el=='mójNagłówek')) { tags[i].innerHTML=""; noFooter=true; } } if (noFooter) return; var footer = document.getElementById('mojaStopka'); if ((footer !== null) && (footers==1)) { var bodyContent = document.getElementById('bodyContent'); if (bodyContent !== null) { var s0=document.getElementById('mojaStopka0'); var s1=document.getElementById('mojaStopka1'); if ((s1 !== null) || ((s0 === null) && (bodyContent.innerHTML.length>8000))){ var strona=document.getElementById('strona'); if(strona!==null){ strona.appendChild(footer); }else{ var catlinks=document.getElementById('catlinks'); if(catlinks !== null){ bodyContent.insertBefore(footer,catlinks); }else{ bodyContent.appendChild(footer); } } } } } /* Koniec skryptu odpowiedzialnego za wyświetlanie szablonu Nagłówek [[Szablon:Nagłówek]] */ }; $(Common.Naglowek); /*Informacje o danej stronie*/ Common.PageInfoInit=function(){ var _g = /_/g; this.name = mw.config.get('wgPageName').replace(/_/g, ' '); this.namespace = mw.config.get('wgNamespaceNumber'); var i = this.name.search(/\/[^\/]*$/g); this.title = this.name.slice(i + 1); this.book = this.name.replace(/\/.*/g, ""); if ( document.URL.search("//pl.wikibooks.org/w/index.php") != -1 ) { re = /\&diff=/g; this.diff = re.test(document.URL); re = /\&action=[^\&]*/g; this.action = document.URL.match(re); if ( this.action === null ) { this.action = 'get'; } else { this.action = this.action[0].slice(8, this.action[0].length); } } else { this.diff = null; this.action = 'get'; } } Common.pageInfo = new Common.PageInfoInit(); /** Collapsible tables ********************************************************* * * Description: Allows tables to be collapsed, showing only the header. See * [[en:Wikipedia:NavFrame]]. * Maintainers: [[User:R. Koot]] */ Common.autoCollapse = 2; Common.collapseCaption = "ukryj"; Common.expandCaption = "pokaż"; Common.collapseTable=function( tableIndex ) { var Button = document.getElementById( "collapseButton" + tableIndex ); var Table = document.getElementById( "collapsibleTable" + tableIndex ); if ( !Table || !Button ) { return false; } var Rows = Table.rows; if ( Button.firstChild.data == Common.collapseCaption ) { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = "none"; } Button.firstChild.data = Common.expandCaption; } else { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = Rows[0].style.display; } Button.firstChild.data = Common.collapseCaption; } } Common.createCollapseButtons=function() { var tableIndex = 0; var NavigationBoxes = new Object(); var Tables = document.getElementsByTagName( "table" ); for ( var i = 0; i < Tables.length; i++ ) { if ( $(Tables[i]).hasClass( "collapsible" ) ) { /* only add button and increment count if there is a header row to work with */ var HeaderRow = Tables[i].getElementsByTagName( "tr" )[0]; if (!HeaderRow) continue; var Header = HeaderRow.getElementsByTagName( "th" )[0]; if (!Header) continue; NavigationBoxes[ tableIndex ] = Tables[i]; Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex ); var Button = document.createElement( "span" ); var ButtonLink = document.createElement( "a" ); var ButtonText = document.createTextNode( Common.collapseCaption ); Button.style.styleFloat = "right"; Button.style.cssFloat = "right"; Button.style.fontWeight = "normal"; Button.style.textAlign = "right"; Button.style.width = "6em"; ButtonLink.style.color = Header.style.color; ButtonLink.setAttribute( "id", "collapseButton" + tableIndex ); ButtonLink.setAttribute( "href", "javascript:Common.collapseTable(" + tableIndex + ");" ); ButtonLink.appendChild( ButtonText ); Button.appendChild( document.createTextNode( "[" ) ); Button.appendChild( ButtonLink ); Button.appendChild( document.createTextNode( "]" ) ); $(Header.childNodes[0]).has('a#collapseButton' + tableIndex).each(function(i,element){ $(element).remove(); }); Header.insertBefore( Button, Header.childNodes[0]); tableIndex++; } } for ( var i = 0; i < tableIndex; i++ ) { if ( $(NavigationBoxes[i]).hasClass( "collapsed" ) || ( tableIndex >= Common.autoCollapse && $(NavigationBoxes[i]).hasClass( "Common.autoCollapse" ) ) ) { collapseTable( i ); } else if ( $(NavigationBoxes[i]).hasClass( "innercollapse" ) ) { var element = NavigationBoxes[i]; while (element = element.parentNode) { if ( $(element).hasClass( "outercollapse" ) ) { collapseTable ( i ); break; } } } } } $(Common.createCollapseButtons ); /** Dynamic Navigation Bars (experimental) ************************************* * * Description: See [[Wikipedia:NavFrame]]. * Maintainers: UNMAINTAINED */ // set up the words in your language Common.NavigationBarHide = '[' + Common.collapseCaption + ']'; Common.NavigationBarShow = '[' + Common.expandCaption + ']'; // shows and hides content and picture (if available) of navigation bars // Parameters: // indexNavigationBar: the index of navigation bar to be toggled Common.toggleNavigationBar=function(indexNavigationBar) { var NavToggle = document.getElementById("NavToggle" + indexNavigationBar); var NavFrame = document.getElementById("NavFrame" + indexNavigationBar); if (!NavFrame || !NavToggle) { return false; } // if shown now if (NavToggle.firstChild.data == Common.NavigationBarHide) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) ) { NavChild.style.display = 'none'; } if ( $(NavChild).hasClass( 'NavContent') ) { NavChild.style.display = 'none'; } } NavToggle.firstChild.data = Common.NavigationBarShow; // if hidden now } else if (NavToggle.firstChild.data == Common.NavigationBarShow) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ($(NavChild).hasClass( 'NavPic')) { NavChild.style.display = 'block'; } if ($(NavChild).hasClass( 'NavContent')) { NavChild.style.display = 'block'; } } NavToggle.firstChild.data = Common.NavigationBarHide; } } // adds show/hide-button to navigation bars Common.createNavigationBarToggleButton=function() { var indexNavigationBar = 0; // iterate over all < div >-elements var divs = document.getElementsByTagName("div"); for (var i = 0; NavFrame = divs[i]; i++) { // if found a navigation bar if ($(NavFrame).hasClass( "NavFrame")) { indexNavigationBar++; var NavToggle = document.createElement("a"); NavToggle.className = 'NavToggle'; NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar); NavToggle.setAttribute('href', 'javascript:Common.toggleNavigationBar(' + indexNavigationBar + ');'); var isCollapsed = $(NavFrame).hasClass( "collapsed" ); /* * Check if any children are already hidden. This loop is here for backwards compatibility: * the old way of making NavFrames start out collapsed was to manually add style="display:none" * to all the NavPic/NavContent elements. Since this was bad for accessibility (no way to make * the content visible without JavaScript support), the new recommended way is to add the class * "collapsed" to the NavFrame itself, just like with collapsible tables. */ for (var NavChild = NavFrame.firstChild; NavChild != null && !isCollapsed; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) || $(NavChild).hasClass( 'NavContent' ) ) { if ( NavChild.style.display == 'none' ) { isCollapsed = true; } } } if (isCollapsed) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) || $(NavChild).hasClass( 'NavContent' ) ) { NavChild.style.display = 'none'; } } } var NavToggleText = document.createTextNode(isCollapsed ? Common.NavigationBarShow : Common.NavigationBarHide); NavToggle.appendChild(NavToggleText); // Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked) for(var j=0; j < NavFrame.childNodes.length; j++) { if ($(NavFrame.childNodes[j]).hasClass( "NavHead")) { $(NavFrame.childNodes[j]).children('a.NavToggle#NavToggle' + indexNavigationBar).each(function(i,element){ $(element).remove(); }); NavFrame.childNodes[j].appendChild(NavToggle); } } NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar); } } } $(Common.createNavigationBarToggleButton ); // Wyszukiwanie Google na stronach podręczników Common.googleSearchInitialized = false; Common.insertGoogleSearch=function() { if ( mw.config.get('wgNamespaceNumber') != 0 || Common.googleSearchInitialized ) { return; } Common.googleSearchInitialized = true; var google = "http://www.google.com/custom?sa=Google+Search&domains=pl.wikibooks.org/wiki/PAGE&sitesearch=pl.wikibooks.org/wiki/PAGE"; var ul = jQuery('#p-tb ul')[0]; if (!ul) { return; } var link = document.createElement('a'); var book = Common.pageInfo.book; if ( book.length == 1 || book.indexOf('++') != -1 || encodeURIComponent(book) != book ) { google = "http://www.google.com/custom?sa=Google+Search&domains=pl.wikibooks.org/wiki/&sitesearch=pl.wikibooks.org/wiki/&q=%22PAGE%22" } link.href = google.replace(/PAGE/g, encodeURIComponent(book)); link.appendChild(document.createTextNode("Szukaj w podręczniku")); var li = document.createElement('li'); li.id = "google-trick-search"; li.appendChild(link); $(ul).children('li#google-trick-search').each(function(i,element){ $(element).remove(); }); ul.insertBefore(li, ul.firstChild); } $(Common.insertGoogleSearch); /*Funkcja do liczenia, czy nastąpiło przepełnienie poziome lub pionowe*/ Common.PobierzSzerokoscPaskaPrzewijania=function(x_box_right){ var div = $('<div style="width:50px;height:50px;overflow:hidden;position:absolute;top:-200px;left:-200px;"><div style="height:100px;"></div></div>'); $('body').append(div); var w1 = $('div', div)["inner"+((x_box_right=="y")?"Width":"Height")](); div.css('overflow-'+(x_box_right||"y"), 'scroll'); var w2 = $('div', div)["inner"+((x_box_right=="y")?"Width":"Height")](); $(div).remove(); return (w1 - w2); } /*Funkcje do obsługi pasków przewijania*/ Common.ScrollBarOverflow=function(){ $('*.mw-overflow-x, *.mw-overflow-y').each(function(i,element_g){ /*start overflow*/ var comp=window.getComputedStyle(element_g, null); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var overflow=comp.getPropertyValue("overflow"); var overflow_x=$(element_g).hasClass('mw-overflow-x'); if(overflow_x){ var overflowX=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); if((overflowX)&&(overflowX=="auto")){ element_g.classList.remove("mw-scrollbar-overflow-x"); const hasHorizontalScrollbar = element_g.scrollWidth > element_g.clientWidth; // true lub false if(hasHorizontalScrollbar){ element_g.classList.add("mw-scrollbar-overflow-x"); } } } var overflow_y=$(element_g).hasClass('mw-overflow-y'); if(overflow_y){ var overflowY=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflowY)&&(overflowY=="auto")){ element_g.classList.remove("mw-scrollbar-overflow-y"); const hasVerticalScrollbar = element_g.scrollHeight > element_g.clientHeight; // true lub false if(hasVerticalScrollbar){ element_g.classList.add("mw-scrollbar-overflow-y"); } } } /*koniec overflow*/ }); } $(function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); $(window).on('scroll', Common.ScrollBarOverflow); $(window).on('resize', Common.ScrollBarOverflow); /*Funkcja symulująca właściwości position:sticky, wszędzie tam, gdzie nie można go użyć.*/ Common.StickyXY=function(){ $('*.mw-sticky-x, *.mw-sticky-y').each(function(i,element_g){ var comp=window.getComputedStyle(element_g, null); function FunStickyXY(height,top,bottom,width_box,left_box,right_box,x_box,x_box_right){ var pozycje_paskow=new Array(); $(element_g).find('*').each(function(i,element){ var comp=window.getComputedStyle(element, null); var overflow=comp.getPropertyValue("overflow"); var overflow_x=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); var overflow_y=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflow_x=="auto")||(overflow_x=="scroll")||(overflow_y=="auto")||(overflow_y=="scroll")){ pozycje_paskow.push(new Array(element,element.scrollTop,element.scrollLeft)); } }); var height_sticky=0; $('html.client-js.vector-sticky-header-enabled body.skin-vector-search-vue.vector-sticky-header-visible header.vector-sticky-header').each(function(i,el){ var rect_sticky=el.getBoundingClientRect(); height_sticky=parseInt(rect_sticky[height]); }); var StickyXYTopOld=$(element_g).data('stickyXYOld-'+top);var StickyXYBottomOld=$(element_g).data('stickyXYOld-'+bottom); if(StickyXYTopOld===undefined){ var topold_war=parseFloat(element_g.style[top]); $(element_g).data('stickyXYOld-'+top,((!isNaN(topold_war))?topold_war:0)); } if(StickyXYBottomOld===undefined){ var bottomold_war=parseFloat(element_g.style[bottom]); $(element_g).data('stickyXYOld-'+bottom,((!isNaN(bottomold_war))?bottomold_war:0)); } var topold=$(element_g).data('stickyXYOld-'+top)+height_sticky+5; var margintop=parseFloat(comp.getPropertyValue("margin-"+top)); margintop=((!isNaN(margintop))?margintop:0); var marginbottom=parseFloat(comp.getPropertyValue("margin-"+bottom)); marginbottom=((!isNaN(marginbottom))?marginbottom:0); var przodek_height=undefined; element_g.style[height]="auto"; element_g.style["max"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[top]="auto"; element_g.style[bottom]="auto"; if(width_box!=null){ element_g.style[width_box]="auto"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[left_box]="auto"; element_g.style[right_box]="0"; $(element_g).find('.mw-not-overflow-'+x_box+'.mw-overflow-'+x_box).each(function(i,element){ element.style[width_box]="auto"; }); } var parents_node_fun=$(element_g).parents('.mw-parent-node').first(); if((parents_node_fun==null)||(parents_node_fun.length==0)){return;} var width_rodzic=null; var rodzic_element=undefined; var comp_rodz; parents_node_fun.each(function(i,element){ comp_rodz=window.getComputedStyle(element,null); przodek_height=parseFloat(comp_rodz.getPropertyValue([height])); width_rodzic=width_box?parseFloat(comp_rodz.getPropertyValue([width_box])):null; rodzic_element=element; }); var height_box_real=parseFloat(comp.getPropertyValue(height)); var rect_dziecko=element_g.getBoundingClientRect(); var wys=document.documentElement["client"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]; var rect_rodzic; parents_node_fun.each(function(i,element){ rect_rodzic=element.getBoundingClientRect(); }); var top_ab=rect_rodzic[top]; var bottom_ab=(wys-rect_rodzic[bottom]); var maxheight=Math.min(przodek_height,wys-((rect_rodzic[top]>=0)?(rect_rodzic[top]):(0))-((bottom_ab>=0)?(bottom_ab):(0)))-(((top_ab<=0)?(topold):(Math.max(0,topold-top_ab)))+((bottom_ab<=0)?($(element_g).data('stickyXYOld-'+bottom)+5):(Math.max(0,$(element_g).data('stickyXYOld-'+bottom)+5-bottom_ab)))+marginbottom+margintop); element_g.style["max"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(((maxheight>=0)?maxheight:0)*(height_box_real/rect_dziecko[height]))+"px"; element_g.style[height]=(element_g["offset"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))])+"px"; var top_obj=(((top_ab>=0)?0:(-top_ab)))+((top_ab<=0)?(topold):(Math.max(0,topold-top_ab))); element_g.style[top]=top_obj+"px"; element_g.style[bottom]="auto"; if(width_box!=null){ element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; rodzic_element.style.position="static"; rodzic_element.style.overflow="hidden"; var width_box_real=parseFloat(comp.getPropertyValue(width_box)); var rect_dziecko=element_g.getBoundingClientRect(); if(parseInt(width_box_real)>parseInt(rect_dziecko[width_box])){ if(width_box=="width"){ element_g.classList.remove('mw-scrollbar-overflow-x'); }else{ element_g.classList.remove('mw-scrollbar-overflow-y'); } if(rect_dziecko[width_box]>width_rodzic){ if(width_box=="width"){ element_g.classList.add('mw-scrollbar-overflow-x'); }else{ element_g.classList.add('mw-scrollbar-overflow-y'); } } var width_box_real=parseFloat(comp.getPropertyValue(width_box)); var margin_all=parseFloat(comp.getPropertyValue("margin-"+left_box))+parseFloat(comp.getPropertyValue("margin-"+right_box)); margin_all+=parseFloat(comp_rodz.getPropertyValue("padding-"+left_box))+parseFloat(comp_rodz.getPropertyValue("padding-"+right_box)); var dlugosc=(width_rodzic-margin_all); dlugosc=((dlugosc>=0)?dlugosc:0); element_g.style.whiteSpace="nowrap"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width_box]))+"px"; element_g.style[width_box]=width_box_real+"px"; Common.ScrollBarOverflow(); $(element_g).find('.mw-overflow-'+x_box+'.mw-not-overflow-'+x_box+'.mw-scrollbar-overflow-'+x_box).each(function(i,element){ var comp_element=window.getComputedStyle(element, null) element.style[width_box]=(element["scroll"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]+Common.PobierzSzerokoscPaskaPrzewijania(x_box_right)+parseFloat(comp_element.getPropertyValue('padding-'+left_box))+parseFloat(comp_element.getPropertyValue('padding-'+right_box)))+"px"; element.classList.remove('mw-scrollbar-overflow-'+x_box_right); }); element_g.style.whiteSpace="normal"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[width_box]="auto"; var rect_dziecko=element_g.getBoundingClientRect(); var width_box_real=parseFloat(comp.getPropertyValue(width_box)); element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width_box]))+"px"; element_g.style[width_box]=width_box_real+"px"; element_g.style[left_box]="0"; element_g.style[right_box]="auto"; rodzic_element.style.position="relative"; }else{ element_g.style.whiteSpace="nowrap"; var szerokosc_box=rect_dziecko[width_box]; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(szerokosc_box)+"px"; element_g.style[width_box]=(szerokosc_box)+"px"; Common.ScrollBarOverflow(); $(element_g).find('.mw-overflow-'+x_box+'.mw-not-overflow-'+x_box+'.mw-scrollbar-overflow-'+x_box).each(function(i,element){ var comp_element=window.getComputedStyle(element, null); element.style[width_box]=(element["scroll"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]+Common.PobierzSzerokoscPaskaPrzewijania(x_box_right)+parseFloat(comp_element.getPropertyValue('padding-'+left_box))+parseFloat(comp_element.getPropertyValue('padding-'+right_box)))+"px"; element.classList.remove('mw-scrollbar-overflow-'+x_box_right); }); element_g.style.whiteSpace="normal"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[width_box]="auto"; var rect_dziecko=element_g.getBoundingClientRect(); var szerokosc_box=rect_dziecko[width_box]; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(szerokosc_box)+"px"; element_g.style[width_box]=(szerokosc_box)+"px"; var szerokosc=rect_dziecko[width_box]+parseFloat(comp.getPropertyValue("margin-"+left_box))+parseFloat(comp.getPropertyValue("margin-"+right_box)); if(parseInt(szerokosc)>parseInt(width_rodzic)){ element_g.style[right_box]="0"; element_g.style[left_box]="auto"; rodzic_element.style.overflow="visible"; }else{ element_g.style[left_box]="0"; element_g.style[right_box]="auto"; rodzic_element.style.position="relative"; } } } element_g.style[height]="auto"; element_g.style[height]=(element_g["offset"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))])+"px"; Common.ScrollBarOverflow(); for(var i in pozycje_paskow){ pozycje_paskow[i][0].scrollTop=pozycje_paskow[i][1]; pozycje_paskow[i][0].scrollLeft=pozycje_paskow[i][2]; } } element_g.classList.add('mw-sticky-js'); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var visibility=comp.getPropertyValue("visibility"); if(visibility=="hidden"){return;} var position=comp.getPropertyValue("position"); if(position!="absolute"){return;} var sticky_x=$(element_g).hasClass('mw-sticky-x'); var sticky_y=$(element_g).hasClass('mw-sticky-y'); if((sticky_x)&&(!sticky_y)){ var str=$(element_g).parents('.strona_górna, .strona_dolna').first(); if(str.hasClass('strona_dolna')){ FunStickyXY("width","left","right","height","top","bottom","y","x"); }else if(str.hasClass('strona_górna')){ FunStickyXY("width","left","right","height","bottom","top","y","x"); } }else if((!sticky_x)&&(sticky_y)){ var str=$(element_g).parents('.strona_prawa, .strona_lewa').first(); if(str.hasClass('strona_prawa')){ FunStickyXY("height","top","bottom","width","left","right","x","y"); }else if(str.hasClass('strona_lewa')){ FunStickyXY("height","top","bottom","width","right","left","x","y"); } }else if((sticky_x)&&(sticky_y)){ FunStickyXY("width","left","right",null); FunStickyXY("height","top","bottom",null); } }); } $(function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); $(window).on('scroll', Common.StickyXY); $(window).on('resize', Common.StickyXY); /*Funkcja do ustawiania maksymalnego rozmiaru dziecka, względem rodzica, przy position:absolute*/ Common.OptimalXY=function(){ $('*.mw-optimal-x, *.mw-optimal-y').each(function(i,element_g){ var comp=window.getComputedStyle(element_g, null); function FunOptimalXY(width,left,right){ var pozycje_paskow=new Array(); $(element_g).find('*').each(function(i,element){ var comp=window.getComputedStyle(element, null); var overflow=comp.getPropertyValue("overflow"); var overflow_x=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); var overflow_y=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflow_x=="auto")||(overflow_x=="scroll")||(overflow_y=="auto")||(overflow_y=="scroll")){ pozycje_paskow.push(new Array(element,element.scrollTop,element.scrollLeft)); } }); var width_rodzic=null; var rodzic_node; var comp_rodz; $(element_g).parents('.mw-parent-node').first().each(function(i,element){ comp_rodz=window.getComputedStyle(element,null); width_rodzic=parseFloat(comp_rodz.getPropertyValue([width])); rodzic_node=element; }); if((width_rodzic!=null)&&(!isNaN(width_rodzic))){ element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; var width_box_real=parseFloat(comp.getPropertyValue(width)); var rect_dziecko=element_g.getBoundingClientRect(); if(width=="width"){ element_g.classList.remove('mw-scrollbar-overflow-x'); }else{ element_g.classList.remove('mw-scrollbar-overflow-y'); } if(parseInt(width_box_real)>parseInt(rect_dziecko[width])){ var rect_dziecko=element_g.getBoundingClientRect(); if(rect_dziecko[width]>width_rodzic){ if(width=="width"){ element_g.classList.add('mw-scrollbar-overflow-x'); }else{ element_g.classList.add('mw-scrollbar-overflow-y'); } } var width_box_real=parseFloat(comp.getPropertyValue(width)); var margin_all=parseFloat(comp.getPropertyValue("margin-"+left))+parseFloat(comp.getPropertyValue("margin-"+right)); margin_all+=parseFloat(comp_rodz.getPropertyValue("padding-"+left))+parseFloat(comp_rodz.getPropertyValue("padding-"+right)); var dlugosc=(width_rodzic-margin_all); dlugosc=((dlugosc>=0)?dlugosc:0); element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width]))+"px"; }else{ element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(rect_dziecko[width])+"px"; } var str=$(element_g).parents('.strona_prawa, .strona_lewa, .strona_górna, .strona_dolna').first(); if(!str.hasClass('strona_start-nawigacja_boksy')){ var rect_dziecko=element_g.getBoundingClientRect(); var szerokosc=rect_dziecko[width]+parseFloat(comp.getPropertyValue("margin-"+left))+parseFloat(comp.getPropertyValue("margin-"+right)); if(parseInt(szerokosc)>parseInt(width_rodzic)){ str.css('position','static'); }else{ str.css('position','relative'); } } } for(var i in pozycje_paskow){ pozycje_paskow[i][0].scrollTop=pozycje_paskow[i][1]; pozycje_paskow[i][0].scrollLeft=pozycje_paskow[i][2]; } }; element_g.classList.add('mw-optimal-js'); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var visibility=comp.getPropertyValue("visibility"); if(visibility=="hidden"){return;} var position=comp.getPropertyValue("position"); if(position!="absolute"){return;} var optimal_x=$(element_g).hasClass('mw-optimal-x'); var optimal_y=$(element_g).hasClass('mw-optimal-y'); if(optimal_x){ FunOptimalXY("width","left","right"); } if(optimal_y){ FunOptimalXY("height","top","bottom"); } }); } $(function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); $(window).on("scroll",Common.OptimalXY); $(window).on("resize",Common.OptimalXY); /*Uruchamianie dodatkowych funkcji, niż standardowe, w href w linkach rozwijanej tabeli TABLE lub ramki DIV, jeśli ona generuje zwiększenie rozmiarów, aby w rodzicu pojawił się pasek przewijania, z dodatkowymi opcjami generowanej przez arkusz kalkulacyjny CSS*/ Common.RamkiTableIDiv=function(obiekt,id_tabeli_lub_ramki,id_nazwa_a,fun_obiektu){ $(obiekt).each(function(i,element_f){ return new Promise(function(resolve,reject){ var czas=0; function Czekaj(){ if(czas>30000){ reject(); } var collapsebutton=$(element_f).find('a#'+id_nazwa_a+i); if((collapsebutton!==null)&&(collapsebutton.length>0)){ var tabele_lub_ramki=collapsebutton.parents('#'+id_tabeli_lub_ramki+i); if((tabele_lub_ramki===null)||(tabele_lub_ramki.length==0)){reject();} resolve(i); }else{ czas+=100; setTimeout(Czekaj,100); } } Czekaj(); }).then(function(i){ $('*.mw-overflow-x a#'+id_nazwa_a+i+', *.mw-overflow-y a#'+id_nazwa_a+i).each(function(j,element_g){ var href=element_g.getAttribute('href'); if((href!=null)&&(href!="")){ var col="[\\s;\\(\\,]*javascript:"+fun_obiektu.replace(/\./g,"\\.")+"\\s*\\(\\s*"+i+"\\s*\\)[\\s;\\)\\,]*"; var re_frame = new RegExp(col,'g'); var re_javascript=new RegExp("^[\\s;]*javascript:"); if((re_javascript.test(href))&&(re_frame.test(href))){ element_g.setAttribute('href',href.replace(/[;\s]*$/g,"")+';javascript:Common.ScrollBarOverflow();javascript:Common.StickyXY();javascript:Common.OptimalXY()') } } }); }).catch(function(){}); }); }; /*Dla menu rozwijanego tabeli TABLE zdefiniowanej na stronie MediaWiki:Common.js*/ Common.RamkiTableIDiv("table.collapsible",'collapsibleTable','collapseButton','Common.collapseTable'); /*Dla menu rozwijanej ramki DIV zdefiniowanej na stronie MediaWiki:Common.js*/ Common.RamkiTableIDiv("div.NavFrame",'NavFrame','NavToggle','Common.toggleNavigationBar'); /*Koniec dodatkowych funkcji*/ /*Uruchamianie dodatkowych zdarzeń do Common.StickyXY i OptimalXY*/ Common.ZdarzeniaDodatkoweFunkcyjneXY=function(css,fun_zdarz){ var fun_css=$(css); fun_css.on('mouseenter',fun_zdarz); fun_css.on('mouseleave',fun_zdarz); fun_css.on('transitionstart',fun_zdarz); fun_css.on('webkittransitionstart',fun_zdarz); fun_css.on('moztransitionstart',fun_zdarz); fun_css.on('otransitionstart',fun_zdarz); fun_css.on('transitionrun',fun_zdarz); fun_css.on('webkittransitionrun',fun_zdarz); fun_css.on('moztransitionrun',fun_zdarz); fun_css.on('otransitionrun',fun_zdarz); fun_css.on('transitioncancel',fun_zdarz); fun_css.on('webkittransitioncancel',fun_zdarz); fun_css.on('moztransitioncancel',fun_zdarz); fun_css.on('otransitioncancel',fun_zdarz); fun_css.on('transitionend',fun_zdarz); fun_css.on('webkittransitionend',fun_zdarz); fun_css.on('moztransitionend',fun_zdarz); fun_css.on('otransitionend',fun_zdarz); }; Common.ZdarzeniaDodatkoweFunkcyjneXY("*.mw-sticky-x, *.mw-sticky-y",Common.StickyXY); Common.ZdarzeniaDodatkoweFunkcyjneXY('*.mw-optimal-x, *.mw-optimal-y',Common.OptimalXY); /*Koniec dodatkowych zdarzeń*/ /*Program do obsługi szablonu StronaStart i jego pokrewnych książkowych*/ Common.StronaStart=function(){ var elements=$('.strona_start .strona .ciało_zawartości > .menu > .menu_boks'); elements.parent().show(); $('.strona_start').find('.strona_lewa .nawigacja_boksy, .strona_prawa .nawigacja_boksy').each(function(i,element){ $(element).css('visibility',"hidden"); }); $('.strona_start').find('.strona_lewa .nawigacja_spis, .strona_prawa .nawigacja_spis').each(function(i,element){ var czy_visible=$(element).css('visibility'); $(element).css('visibility',"visible"); var str=$(element).parents('.strona_prawa, .strona_lewa').first(); str.css('position','relative'); str.addClass('strona_start-nawigacja_spis'); str.removeClass('strona_start-nawigacja_boksy'); if(czy_visible=="hidden"){ $(Common.ScrollBarOverflow); $(Common.StickyXY); } }); function StronaStartFun(){ var id=this; $(id).parents('.strona_start').first().find('.strona .ciało_zawartości > .menu > .menu_boks').children().each(function(i,element){ var display=$(element).css('display'); if(display=="none"){ $(element).css('display',"block"); }else{ $(element).css('display',"none"); } }); $(id).parents('.strona_start').first().find('.strona_lewa, .strona_prawa').children().each(function(i,element){ var visibility=window.getComputedStyle(element, null).getPropertyValue('visibility'); if(visibility=="hidden"){ $(element).css('visibility',"visible"); var str=$(element).parents('.strona_prawa, .strona_lewa').first(); if($(element).hasClass('nawigacja_boksy')){ str.css('position','static'); str.addClass('strona_start-nawigacja_boksy'); str.removeClass('strona_start-nawigacja_spis'); $(Common.ScrollBarOverflow); $(Common.OptimalXY); }else if($(element).hasClass('nawigacja_spis')){ str.css('position','relative'); str.addClass('strona_start-nawigacja_spis'); str.removeClass('strona_start-nawigacja_boksy'); $(Common.ScrollBarOverflow); $(Common.StickyXY); } }else{ $(element).css('visibility',"hidden"); } }); } elements.off('click',StronaStartFun); elements.on('click',StronaStartFun); } $(Common.StronaStart); 871gaksx8vbkrnbbefepmqtzb2ht4re 437181 437180 2022-08-08T08:46:35Z Persino 2851 javascript text/javascript mw.loader.load( '//pl.wikibooks.org/w/index.php?action=raw&ctype=text/javascript&title=Wikipedysta:Persino/Gadget-StronicowyParser.js', 'text/javascript', true ); /**/ /* Umieszczony tutaj kod JavaScript zostanie załadowany przez każdego użytkownika, podczas każdego ładowania strony. */ // Frame Busting if (top != self) top.location.href = self.location.href; /* * Zmienna Common.pageInfo, jego elementy, instrukcja obsługi: * Common.pageInfo.namespace numer przestrzeni nazw (równe wgNamespaceNumber) * Common.pageInfo.name pełna nazwa strony * Common.pageInfo.title tytuł strony, czyli ostatnia część po '/' albo jest równe pageInfo.name, gdy nigdzie nie występuje slash * Common.pageInfo.book tytuł książki * Common.pageInfo.action akcja taka jaka jest w adresie URL pod "action=", w przypadku normalnego czytania strony, action jest równe "get" * Common.pageInfo.diff null w przypadku, gdy nie porównujemy wersji, w przeciwnym wypadku wartość występującą w adresie URL */ /*Przestrzeń nazw: Common, zdefiniowanym za pomocą tablicy*/ var Common=new Array(); /*Funkcje w przestrzeni nazw Common*/ Common.Naglowek=function(){ /* Skrypt odpowiedzialny za wyświetlanie szablonu Nagłówek [[Szablon:Nagłówek]] */ var hideAll = document.getElementById('mójNagłówekUkryj'); var noFooter = false; var footers = 0; var tags = document.getElementsByTagName('div'); for (var i = 0; i < tags.length; i++) { var el=tags[i].getAttribute("id"); if (el=='mojaStopka') footers++; else if (hideAll && (el=='mójNagłówek')) { tags[i].innerHTML=""; noFooter=true; } } if (noFooter) return; var footer = document.getElementById('mojaStopka'); if ((footer !== null) && (footers==1)) { var bodyContent = document.getElementById('bodyContent'); if (bodyContent !== null) { var s0=document.getElementById('mojaStopka0'); var s1=document.getElementById('mojaStopka1'); if ((s1 !== null) || ((s0 === null) && (bodyContent.innerHTML.length>8000))){ var strona=document.getElementById('strona'); if(strona!==null){ strona.appendChild(footer); }else{ var catlinks=document.getElementById('catlinks'); if(catlinks !== null){ bodyContent.insertBefore(footer,catlinks); }else{ bodyContent.appendChild(footer); } } } } } /* Koniec skryptu odpowiedzialnego za wyświetlanie szablonu Nagłówek [[Szablon:Nagłówek]] */ }; $(Common.Naglowek); /*Informacje o danej stronie*/ Common.PageInfoInit=function(){ var _g = /_/g; this.name = mw.config.get('wgPageName').replace(/_/g, ' '); this.namespace = mw.config.get('wgNamespaceNumber'); var i = this.name.search(/\/[^\/]*$/g); this.title = this.name.slice(i + 1); this.book = this.name.replace(/\/.*/g, ""); if ( document.URL.search("//pl.wikibooks.org/w/index.php") != -1 ) { re = /\&diff=/g; this.diff = re.test(document.URL); re = /\&action=[^\&]*/g; this.action = document.URL.match(re); if ( this.action === null ) { this.action = 'get'; } else { this.action = this.action[0].slice(8, this.action[0].length); } } else { this.diff = null; this.action = 'get'; } } Common.pageInfo = new Common.PageInfoInit(); /** Collapsible tables ********************************************************* * * Description: Allows tables to be collapsed, showing only the header. See * [[en:Wikipedia:NavFrame]]. * Maintainers: [[User:R. Koot]] */ Common.autoCollapse = 2; Common.collapseCaption = "ukryj"; Common.expandCaption = "pokaż"; Common.collapseTable=function( tableIndex ) { var Button = document.getElementById( "collapseButton" + tableIndex ); var Table = document.getElementById( "collapsibleTable" + tableIndex ); if ( !Table || !Button ) { return false; } var Rows = Table.rows; if ( Button.firstChild.data == Common.collapseCaption ) { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = "none"; } Button.firstChild.data = Common.expandCaption; } else { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = Rows[0].style.display; } Button.firstChild.data = Common.collapseCaption; } } Common.createCollapseButtons=function() { var tableIndex = 0; var NavigationBoxes = new Object(); var Tables = document.getElementsByTagName( "table" ); for ( var i = 0; i < Tables.length; i++ ) { if ( $(Tables[i]).hasClass( "collapsible" ) ) { /* only add button and increment count if there is a header row to work with */ var HeaderRow = Tables[i].getElementsByTagName( "tr" )[0]; if (!HeaderRow) continue; var Header = HeaderRow.getElementsByTagName( "th" )[0]; if (!Header) continue; NavigationBoxes[ tableIndex ] = Tables[i]; Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex ); var Button = document.createElement( "span" ); var ButtonLink = document.createElement( "a" ); var ButtonText = document.createTextNode( Common.collapseCaption ); Button.style.styleFloat = "right"; Button.style.cssFloat = "right"; Button.style.fontWeight = "normal"; Button.style.textAlign = "right"; Button.style.width = "6em"; ButtonLink.style.color = Header.style.color; ButtonLink.setAttribute( "id", "collapseButton" + tableIndex ); ButtonLink.setAttribute( "href", "javascript:Common.collapseTable(" + tableIndex + ");" ); ButtonLink.appendChild( ButtonText ); Button.appendChild( document.createTextNode( "[" ) ); Button.appendChild( ButtonLink ); Button.appendChild( document.createTextNode( "]" ) ); $(Header.childNodes[0]).has('a#collapseButton' + tableIndex).each(function(i,element){ $(element).remove(); }); Header.insertBefore( Button, Header.childNodes[0]); tableIndex++; } } for ( var i = 0; i < tableIndex; i++ ) { if ( $(NavigationBoxes[i]).hasClass( "collapsed" ) || ( tableIndex >= Common.autoCollapse && $(NavigationBoxes[i]).hasClass( "Common.autoCollapse" ) ) ) { collapseTable( i ); } else if ( $(NavigationBoxes[i]).hasClass( "innercollapse" ) ) { var element = NavigationBoxes[i]; while (element = element.parentNode) { if ( $(element).hasClass( "outercollapse" ) ) { collapseTable ( i ); break; } } } } } $(Common.createCollapseButtons ); /** Dynamic Navigation Bars (experimental) ************************************* * * Description: See [[Wikipedia:NavFrame]]. * Maintainers: UNMAINTAINED */ // set up the words in your language Common.NavigationBarHide = '[' + Common.collapseCaption + ']'; Common.NavigationBarShow = '[' + Common.expandCaption + ']'; // shows and hides content and picture (if available) of navigation bars // Parameters: // indexNavigationBar: the index of navigation bar to be toggled Common.toggleNavigationBar=function(indexNavigationBar) { var NavToggle = document.getElementById("NavToggle" + indexNavigationBar); var NavFrame = document.getElementById("NavFrame" + indexNavigationBar); if (!NavFrame || !NavToggle) { return false; } // if shown now if (NavToggle.firstChild.data == Common.NavigationBarHide) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) ) { NavChild.style.display = 'none'; } if ( $(NavChild).hasClass( 'NavContent') ) { NavChild.style.display = 'none'; } } NavToggle.firstChild.data = Common.NavigationBarShow; // if hidden now } else if (NavToggle.firstChild.data == Common.NavigationBarShow) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ($(NavChild).hasClass( 'NavPic')) { NavChild.style.display = 'block'; } if ($(NavChild).hasClass( 'NavContent')) { NavChild.style.display = 'block'; } } NavToggle.firstChild.data = Common.NavigationBarHide; } } // adds show/hide-button to navigation bars Common.createNavigationBarToggleButton=function() { var indexNavigationBar = 0; // iterate over all < div >-elements var divs = document.getElementsByTagName("div"); for (var i = 0; NavFrame = divs[i]; i++) { // if found a navigation bar if ($(NavFrame).hasClass( "NavFrame")) { indexNavigationBar++; var NavToggle = document.createElement("a"); NavToggle.className = 'NavToggle'; NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar); NavToggle.setAttribute('href', 'javascript:Common.toggleNavigationBar(' + indexNavigationBar + ');'); var isCollapsed = $(NavFrame).hasClass( "collapsed" ); /* * Check if any children are already hidden. This loop is here for backwards compatibility: * the old way of making NavFrames start out collapsed was to manually add style="display:none" * to all the NavPic/NavContent elements. Since this was bad for accessibility (no way to make * the content visible without JavaScript support), the new recommended way is to add the class * "collapsed" to the NavFrame itself, just like with collapsible tables. */ for (var NavChild = NavFrame.firstChild; NavChild != null && !isCollapsed; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) || $(NavChild).hasClass( 'NavContent' ) ) { if ( NavChild.style.display == 'none' ) { isCollapsed = true; } } } if (isCollapsed) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) || $(NavChild).hasClass( 'NavContent' ) ) { NavChild.style.display = 'none'; } } } var NavToggleText = document.createTextNode(isCollapsed ? Common.NavigationBarShow : Common.NavigationBarHide); NavToggle.appendChild(NavToggleText); // Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked) for(var j=0; j < NavFrame.childNodes.length; j++) { if ($(NavFrame.childNodes[j]).hasClass( "NavHead")) { $(NavFrame.childNodes[j]).children('a.NavToggle#NavToggle' + indexNavigationBar).each(function(i,element){ $(element).remove(); }); NavFrame.childNodes[j].appendChild(NavToggle); } } NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar); } } } $(Common.createNavigationBarToggleButton ); // Wyszukiwanie Google na stronach podręczników Common.googleSearchInitialized = false; Common.insertGoogleSearch=function() { if ( mw.config.get('wgNamespaceNumber') != 0 || Common.googleSearchInitialized ) { return; } Common.googleSearchInitialized = true; var google = "http://www.google.com/custom?sa=Google+Search&domains=pl.wikibooks.org/wiki/PAGE&sitesearch=pl.wikibooks.org/wiki/PAGE"; var ul = jQuery('#p-tb ul')[0]; if (!ul) { return; } var link = document.createElement('a'); var book = Common.pageInfo.book; if ( book.length == 1 || book.indexOf('++') != -1 || encodeURIComponent(book) != book ) { google = "http://www.google.com/custom?sa=Google+Search&domains=pl.wikibooks.org/wiki/&sitesearch=pl.wikibooks.org/wiki/&q=%22PAGE%22" } link.href = google.replace(/PAGE/g, encodeURIComponent(book)); link.appendChild(document.createTextNode("Szukaj w podręczniku")); var li = document.createElement('li'); li.id = "google-trick-search"; li.appendChild(link); $(ul).children('li#google-trick-search').each(function(i,element){ $(element).remove(); }); ul.insertBefore(li, ul.firstChild); } $(Common.insertGoogleSearch); /*Funkcja do liczenia, czy nastąpiło przepełnienie poziome lub pionowe*/ Common.PobierzSzerokoscPaskaPrzewijania=function(x_box_right){ var div = $('<div style="width:50px;height:50px;overflow:hidden;position:absolute;top:-200px;left:-200px;"><div style="height:100px;"></div></div>'); $('body').append(div); var w1 = $('div', div)["inner"+((x_box_right=="y")?"Width":"Height")](); div.css('overflow-'+(x_box_right||"y"), 'scroll'); var w2 = $('div', div)["inner"+((x_box_right=="y")?"Width":"Height")](); $(div).remove(); return (w1 - w2); } /*Funkcje do obsługi pasków przewijania*/ Common.ScrollBarOverflow=function(){ $('*.mw-overflow-x, *.mw-overflow-y').each(function(i,element_g){ /*start overflow*/ var comp=window.getComputedStyle(element_g, null); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var overflow=comp.getPropertyValue("overflow"); var overflow_x=$(element_g).hasClass('mw-overflow-x'); if(overflow_x){ var overflowX=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); if((overflowX)&&(overflowX=="auto")){ element_g.classList.remove("mw-scrollbar-overflow-x"); const hasHorizontalScrollbar = element_g.scrollWidth > element_g.clientWidth; // true lub false if(hasHorizontalScrollbar){ element_g.classList.add("mw-scrollbar-overflow-x"); } } } var overflow_y=$(element_g).hasClass('mw-overflow-y'); if(overflow_y){ var overflowY=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflowY)&&(overflowY=="auto")){ element_g.classList.remove("mw-scrollbar-overflow-y"); const hasVerticalScrollbar = element_g.scrollHeight > element_g.clientHeight; // true lub false if(hasVerticalScrollbar){ element_g.classList.add("mw-scrollbar-overflow-y"); } } } /*koniec overflow*/ }); } $(function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); $(window).on('scroll', Common.ScrollBarOverflow); $(window).on('resize', Common.ScrollBarOverflow); /*Funkcja symulująca właściwości position:sticky, wszędzie tam, gdzie nie można go użyć.*/ Common.StickyXY=function(){ $('*.mw-sticky-x, *.mw-sticky-y').each(function(i,element_g){ var comp=window.getComputedStyle(element_g, null); function FunStickyXY(height,top,bottom,width_box,left_box,right_box,x_box,x_box_right){ var pozycje_paskow=new Array(); $(element_g).find('*').each(function(i,element){ var comp=window.getComputedStyle(element, null); var overflow=comp.getPropertyValue("overflow"); var overflow_x=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); var overflow_y=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflow_x=="auto")||(overflow_x=="scroll")||(overflow_y=="auto")||(overflow_y=="scroll")){ pozycje_paskow.push(new Array(element,element.scrollTop,element.scrollLeft)); } }); var height_sticky=0; $('html.client-js.vector-sticky-header-enabled body.skin-vector-search-vue.vector-sticky-header-visible header.vector-sticky-header').each(function(i,el){ var rect_sticky=el.getBoundingClientRect(); height_sticky=parseInt(rect_sticky[height]); }); var StickyXYTopOld=$(element_g).data('stickyXYOld-'+top);var StickyXYBottomOld=$(element_g).data('stickyXYOld-'+bottom); if(StickyXYTopOld===undefined){ var topold_war=parseFloat(element_g.style[top]); $(element_g).data('stickyXYOld-'+top,((!isNaN(topold_war))?topold_war:0)); } if(StickyXYBottomOld===undefined){ var bottomold_war=parseFloat(element_g.style[bottom]); $(element_g).data('stickyXYOld-'+bottom,((!isNaN(bottomold_war))?bottomold_war:0)); } var topold=$(element_g).data('stickyXYOld-'+top)+height_sticky+5; var margintop=parseFloat(comp.getPropertyValue("margin-"+top)); margintop=((!isNaN(margintop))?margintop:0); var marginbottom=parseFloat(comp.getPropertyValue("margin-"+bottom)); marginbottom=((!isNaN(marginbottom))?marginbottom:0); var przodek_height=undefined; element_g.style[height]="auto"; element_g.style["max"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[top]="auto"; element_g.style[bottom]="auto"; if(width_box!=null){ element_g.style[width_box]="auto"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[left_box]="auto"; element_g.style[right_box]="0"; $(element_g).find('.mw-not-overflow-'+x_box+'.mw-overflow-'+x_box).each(function(i,element){ element.style[width_box]="auto"; }); } var parents_node_fun=$(element_g).parents('.mw-parent-node').first(); if((parents_node_fun==null)||(parents_node_fun.length==0)){return;} var width_rodzic=null; var rodzic_element=undefined; var comp_rodz; parents_node_fun.each(function(i,element){ comp_rodz=window.getComputedStyle(element,null); przodek_height=parseFloat(comp_rodz.getPropertyValue([height])); width_rodzic=width_box?parseFloat(comp_rodz.getPropertyValue([width_box])):null; rodzic_element=element; }); var height_box_real=parseFloat(comp.getPropertyValue(height)); var rect_dziecko=element_g.getBoundingClientRect(); var wys=document.documentElement["client"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]; var rect_rodzic; parents_node_fun.each(function(i,element){ rect_rodzic=element.getBoundingClientRect(); }); var top_ab=rect_rodzic[top]; var bottom_ab=(wys-rect_rodzic[bottom]); var maxheight=Math.min(przodek_height,wys-((rect_rodzic[top]>=0)?(rect_rodzic[top]):(0))-((bottom_ab>=0)?(bottom_ab):(0)))-(((top_ab<=0)?(topold):(Math.max(0,topold-top_ab)))+((bottom_ab<=0)?($(element_g).data('stickyXYOld-'+bottom)+5):(Math.max(0,$(element_g).data('stickyXYOld-'+bottom)+5-bottom_ab)))+marginbottom+margintop); element_g.style["max"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(((maxheight>=0)?maxheight:0)*(height_box_real/rect_dziecko[height]))+"px"; element_g.style[height]=(element_g["offset"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))])+"px"; var top_obj=(((top_ab>=0)?0:(-top_ab)))+((top_ab<=0)?(topold):(Math.max(0,topold-top_ab))); element_g.style[top]=top_obj+"px"; element_g.style[bottom]="auto"; if(width_box!=null){ element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; rodzic_element.style.position="static"; rodzic_element.style.overflow="hidden"; var width_box_real=parseFloat(comp.getPropertyValue(width_box)); var rect_dziecko=element_g.getBoundingClientRect(); if(parseInt(width_box_real)>parseInt(rect_dziecko[width_box])){ if(width_box=="width"){ element_g.classList.remove('mw-scrollbar-overflow-x'); }else{ element_g.classList.remove('mw-scrollbar-overflow-y'); } if(rect_dziecko[width_box]>width_rodzic){ if(width_box=="width"){ element_g.classList.add('mw-scrollbar-overflow-x'); }else{ element_g.classList.add('mw-scrollbar-overflow-y'); } } var width_box_real=parseFloat(comp.getPropertyValue(width_box)); var margin_all=parseFloat(comp.getPropertyValue("margin-"+left_box))+parseFloat(comp.getPropertyValue("margin-"+right_box)); margin_all+=parseFloat(comp_rodz.getPropertyValue("padding-"+left_box))+parseFloat(comp_rodz.getPropertyValue("padding-"+right_box)); var dlugosc=(width_rodzic-margin_all); dlugosc=((dlugosc>=0)?dlugosc:0); element_g.style.whiteSpace="nowrap"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width_box]))+"px"; element_g.style[width_box]=width_box_real+"px"; Common.ScrollBarOverflow(); $(element_g).find('.mw-overflow-'+x_box+'.mw-not-overflow-'+x_box+'.mw-scrollbar-overflow-'+x_box).each(function(i,element){ var comp_element=window.getComputedStyle(element, null) element.style[width_box]=(element["scroll"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]+Common.PobierzSzerokoscPaskaPrzewijania(x_box_right)+parseFloat(comp_element.getPropertyValue('padding-'+left_box))+parseFloat(comp_element.getPropertyValue('padding-'+right_box)))+"px"; element.classList.remove('mw-scrollbar-overflow-'+x_box_right); }); element_g.style.whiteSpace="normal"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[width_box]="auto"; var rect_dziecko=element_g.getBoundingClientRect(); var width_box_real=parseFloat(comp.getPropertyValue(width_box)); element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width_box]))+"px"; element_g.style[width_box]=width_box_real+"px"; element_g.style[left_box]="0"; element_g.style[right_box]="auto"; rodzic_element.style.position="relative"; }else{ element_g.style.whiteSpace="nowrap"; var szerokosc_box=rect_dziecko[width_box]; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(szerokosc_box)+"px"; element_g.style[width_box]=(szerokosc_box)+"px"; Common.ScrollBarOverflow(); $(element_g).find('.mw-overflow-'+x_box+'.mw-not-overflow-'+x_box+'.mw-scrollbar-overflow-'+x_box).each(function(i,element){ var comp_element=window.getComputedStyle(element, null); element.style[width_box]=(element["scroll"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]+Common.PobierzSzerokoscPaskaPrzewijania(x_box_right)+parseFloat(comp_element.getPropertyValue('padding-'+left_box))+parseFloat(comp_element.getPropertyValue('padding-'+right_box)))+"px"; element.classList.remove('mw-scrollbar-overflow-'+x_box_right); }); element_g.style.whiteSpace="normal"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[width_box]="auto"; var rect_dziecko=element_g.getBoundingClientRect(); var szerokosc_box=rect_dziecko[width_box]; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(szerokosc_box)+"px"; element_g.style[width_box]=(szerokosc_box)+"px"; var szerokosc=rect_dziecko[width_box]+parseFloat(comp.getPropertyValue("margin-"+left_box))+parseFloat(comp.getPropertyValue("margin-"+right_box)); if(parseInt(szerokosc)>parseInt(width_rodzic)){ element_g.style[right_box]="0"; element_g.style[left_box]="auto"; rodzic_element.style.overflow="visible"; }else{ element_g.style[left_box]="0"; element_g.style[right_box]="auto"; rodzic_element.style.position="relative"; } } } element_g.style[height]="auto"; element_g.style[height]=(element_g["offset"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))])+"px"; Common.ScrollBarOverflow(); for(var i in pozycje_paskow){ pozycje_paskow[i][0].scrollTop=pozycje_paskow[i][1]; pozycje_paskow[i][0].scrollLeft=pozycje_paskow[i][2]; } } element_g.classList.add('mw-sticky-js'); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var visibility=comp.getPropertyValue("visibility"); if(visibility=="hidden"){return;} var position=comp.getPropertyValue("position"); if(position!="absolute"){return;} var sticky_x=$(element_g).hasClass('mw-sticky-x'); var sticky_y=$(element_g).hasClass('mw-sticky-y'); if((sticky_x)&&(!sticky_y)){ var str=$(element_g).parents('.strona_górna, .strona_dolna').first(); if(str.hasClass('strona_dolna')){ FunStickyXY("width","left","right","height","top","bottom","y","x"); }else if(str.hasClass('strona_górna')){ FunStickyXY("width","left","right","height","bottom","top","y","x"); } }else if((!sticky_x)&&(sticky_y)){ var str=$(element_g).parents('.strona_prawa, .strona_lewa').first(); if(str.hasClass('strona_prawa')){ FunStickyXY("height","top","bottom","width","left","right","x","y"); }else if(str.hasClass('strona_lewa')){ FunStickyXY("height","top","bottom","width","right","left","x","y"); } }else if((sticky_x)&&(sticky_y)){ FunStickyXY("width","left","right",null); FunStickyXY("height","top","bottom",null); } }); } $(function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); $(window).on('scroll', Common.StickyXY); $(window).on('resize', Common.StickyXY); /*Funkcja do ustawiania maksymalnego rozmiaru dziecka, względem rodzica, przy position:absolute*/ Common.OptimalXY=function(){ $('*.mw-optimal-x, *.mw-optimal-y').each(function(i,element_g){ var comp=window.getComputedStyle(element_g, null); function FunOptimalXY(width,left,right){ var pozycje_paskow=new Array(); $(element_g).find('*').each(function(i,element){ var comp=window.getComputedStyle(element, null); var overflow=comp.getPropertyValue("overflow"); var overflow_x=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); var overflow_y=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflow_x=="auto")||(overflow_x=="scroll")||(overflow_y=="auto")||(overflow_y=="scroll")){ pozycje_paskow.push(new Array(element,element.scrollTop,element.scrollLeft)); } }); var width_rodzic=null; var rodzic_node; var comp_rodz; $(element_g).parents('.mw-parent-node').first().each(function(i,element){ comp_rodz=window.getComputedStyle(element,null); width_rodzic=parseFloat(comp_rodz.getPropertyValue([width])); rodzic_node=element; }); if((width_rodzic!=null)&&(!isNaN(width_rodzic))){ element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; var width_box_real=parseFloat(comp.getPropertyValue(width)); var rect_dziecko=element_g.getBoundingClientRect(); if(width=="width"){ element_g.classList.remove('mw-scrollbar-overflow-x'); }else{ element_g.classList.remove('mw-scrollbar-overflow-y'); } if(parseInt(width_box_real)>parseInt(rect_dziecko[width])){ var rect_dziecko=element_g.getBoundingClientRect(); if(rect_dziecko[width]>width_rodzic){ if(width=="width"){ element_g.classList.add('mw-scrollbar-overflow-x'); }else{ element_g.classList.add('mw-scrollbar-overflow-y'); } } var width_box_real=parseFloat(comp.getPropertyValue(width)); var margin_all=parseFloat(comp.getPropertyValue("margin-"+left))+parseFloat(comp.getPropertyValue("margin-"+right)); margin_all+=parseFloat(comp_rodz.getPropertyValue("padding-"+left))+parseFloat(comp_rodz.getPropertyValue("padding-"+right)); var dlugosc=(width_rodzic-margin_all); dlugosc=((dlugosc>=0)?dlugosc:0); element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width]))+"px"; }else{ element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(rect_dziecko[width])+"px"; } var str=$(element_g).parents('.strona_prawa, .strona_lewa, .strona_górna, .strona_dolna').first(); if(!str.hasClass('strona_start-nawigacja_boksy')){ var rect_dziecko=element_g.getBoundingClientRect(); var szerokosc=rect_dziecko[width]+parseFloat(comp.getPropertyValue("margin-"+left))+parseFloat(comp.getPropertyValue("margin-"+right)); if(parseInt(szerokosc)>parseInt(width_rodzic)){ str.css('position','static'); }else{ str.css('position','relative'); } } } for(var i in pozycje_paskow){ pozycje_paskow[i][0].scrollTop=pozycje_paskow[i][1]; pozycje_paskow[i][0].scrollLeft=pozycje_paskow[i][2]; } }; element_g.classList.add('mw-optimal-js'); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var visibility=comp.getPropertyValue("visibility"); if(visibility=="hidden"){return;} var position=comp.getPropertyValue("position"); if(position!="absolute"){return;} var optimal_x=$(element_g).hasClass('mw-optimal-x'); var optimal_y=$(element_g).hasClass('mw-optimal-y'); if(optimal_x){ FunOptimalXY("width","left","right"); } if(optimal_y){ FunOptimalXY("height","top","bottom"); } }); } $(function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); $(window).on("scroll",Common.OptimalXY); $(window).on("resize",Common.OptimalXY); /*Uruchamianie dodatkowych funkcji, niż standardowe, w href w linkach rozwijanej tabeli TABLE lub ramki DIV, jeśli ona generuje zwiększenie rozmiarów, aby w rodzicu pojawił się pasek przewijania, z dodatkowymi opcjami generowanej przez arkusz kalkulacyjny CSS*/ Common.RamkiTableIDiv=function(obiekt,id_tabeli_lub_ramki,id_nazwa_a,fun_obiektu){ $(obiekt).each(function(i,element_f){ return new Promise(function(resolve,reject){ var czas=0; function Czekaj(){ if(czas>30000){ reject(); } var collapsebutton=$(element_f).find('a#'+id_nazwa_a+i); if((collapsebutton!==null)&&(collapsebutton.length>0)){ var tabele_lub_ramki=collapsebutton.parents('#'+id_tabeli_lub_ramki+i); if((tabele_lub_ramki===null)||(tabele_lub_ramki.length==0)){reject();} resolve(i); }else{ czas+=100; setTimeout(Czekaj,100); } } Czekaj(); }).then(function(i){ $('*.mw-overflow-x a#'+id_nazwa_a+i+', *.mw-overflow-y a#'+id_nazwa_a+i).each(function(j,element_g){ var href=element_g.getAttribute('href'); if((href!=null)&&(href!="")){ var col="[\\s;\\(\\,]*javascript:"+fun_obiektu.replace(/\./g,"\\.")+"\\s*\\(\\s*"+i+"\\s*\\)[\\s;\\)\\,]*"; var re_frame = new RegExp(col,'g'); var re_javascript=new RegExp("^[\\s;]*javascript:"); if((re_javascript.test(href))&&(re_frame.test(href))){ element_g.setAttribute('href',href.replace(/[;\s]*$/g,"")+';javascript:Common.ScrollBarOverflow();javascript:Common.StickyXY();javascript:Common.OptimalXY()') } } }); }).catch(function(){}); }); }; /*Dla menu rozwijanego tabeli TABLE zdefiniowanej na stronie MediaWiki:Common.js*/ Common.RamkiTableIDiv("table.collapsible",'collapsibleTable','collapseButton','Common.collapseTable'); /*Dla menu rozwijanej ramki DIV zdefiniowanej na stronie MediaWiki:Common.js*/ Common.RamkiTableIDiv("div.NavFrame",'NavFrame','NavToggle','Common.toggleNavigationBar'); /*Koniec dodatkowych funkcji*/ /*Uruchamianie dodatkowych zdarzeń do Common.StickyXY i OptimalXY*/ Common.ZdarzeniaDodatkoweFunkcyjneXY=function(css,fun_zdarz){ var fun_css=$(css); fun_css.on('mouseenter',fun_zdarz); fun_css.on('mouseleave',fun_zdarz); fun_css.on('transitionstart',fun_zdarz); fun_css.on('webkittransitionstart',fun_zdarz); fun_css.on('moztransitionstart',fun_zdarz); fun_css.on('otransitionstart',fun_zdarz); fun_css.on('transitionrun',fun_zdarz); fun_css.on('webkittransitionrun',fun_zdarz); fun_css.on('moztransitionrun',fun_zdarz); fun_css.on('otransitionrun',fun_zdarz); fun_css.on('transitioncancel',fun_zdarz); fun_css.on('webkittransitioncancel',fun_zdarz); fun_css.on('moztransitioncancel',fun_zdarz); fun_css.on('otransitioncancel',fun_zdarz); fun_css.on('transitionend',fun_zdarz); fun_css.on('webkittransitionend',fun_zdarz); fun_css.on('moztransitionend',fun_zdarz); fun_css.on('otransitionend',fun_zdarz); }; Common.ZdarzeniaDodatkoweFunkcyjneXY("*.mw-sticky-x, *.mw-sticky-y",Common.StickyXY); Common.ZdarzeniaDodatkoweFunkcyjneXY('*.mw-optimal-x, *.mw-optimal-y',Common.OptimalXY); /*Koniec dodatkowych zdarzeń*/ /*Program do obsługi szablonu StronaStart i jego pokrewnych książkowych*/ Common.StronaStart=function(){ var elements=$('.strona_start .strona .ciało_zawartości > .menu > .menu_boks'); elements.parent().show(); $('.strona_start').find('.strona_lewa .nawigacja_boksy, .strona_prawa .nawigacja_boksy').each(function(i,element){ $(element).css('visibility',"hidden"); }); $('.strona_start').find('.strona_lewa .nawigacja_spis, .strona_prawa .nawigacja_spis').each(function(i,element){ var czy_visible=$(element).css('visibility'); $(element).css('visibility',"visible"); var str=$(element).parents('.strona_prawa, .strona_lewa').first(); str.css('position','relative'); str.addClass('strona_start-nawigacja_spis'); str.removeClass('strona_start-nawigacja_boksy'); if(czy_visible=="hidden"){ $(Common.ScrollBarOverflow); $(Common.StickyXY); } }); function StronaStartFun(){ var id=this; $(id).parents('.strona_start').first().find('.strona .ciało_zawartości > .menu > .menu_boks').children().each(function(i,element){ var display=$(element).css('display'); if(display=="none"){ $(element).css('display',"block"); }else{ $(element).css('display',"none"); } }); $(id).parents('.strona_start').first().find('.strona_lewa, .strona_prawa').children().each(function(i,element){ var visibility=window.getComputedStyle(element, null).getPropertyValue('visibility'); if(visibility=="hidden"){ $(element).css('visibility',"visible"); var str=$(element).parents('.strona_prawa, .strona_lewa').first(); if($(element).hasClass('nawigacja_boksy')){ str.css('position','static'); str.addClass('strona_start-nawigacja_boksy'); str.removeClass('strona_start-nawigacja_spis'); $(Common.ScrollBarOverflow); $(Common.OptimalXY); }else if($(element).hasClass('nawigacja_spis')){ str.css('position','relative'); str.addClass('strona_start-nawigacja_spis'); str.removeClass('strona_start-nawigacja_boksy'); $(Common.ScrollBarOverflow); $(Common.StickyXY); } }else{ $(element).css('visibility',"hidden"); } }); } elements.off('click'); elements.on('click',StronaStartFun); } $(Common.StronaStart); lt16fgj03ki2drh3cqezonmietloq61 437183 437181 2022-08-08T10:43:24Z Persino 2851 javascript text/javascript mw.loader.load( '//pl.wikibooks.org/w/index.php?action=raw&ctype=text/javascript&title=Wikipedysta:Persino/Gadget-StronicowyParser.js', 'text/javascript', true ); /**/ /* Umieszczony tutaj kod JavaScript zostanie załadowany przez każdego użytkownika, podczas każdego ładowania strony. */ // Frame Busting if (top != self) top.location.href = self.location.href; /* * Zmienna Common.pageInfo, jego elementy, instrukcja obsługi: * Common.pageInfo.namespace numer przestrzeni nazw (równe wgNamespaceNumber) * Common.pageInfo.name pełna nazwa strony * Common.pageInfo.title tytuł strony, czyli ostatnia część po '/' albo jest równe pageInfo.name, gdy nigdzie nie występuje slash * Common.pageInfo.book tytuł książki * Common.pageInfo.action akcja taka jaka jest w adresie URL pod "action=", w przypadku normalnego czytania strony, action jest równe "get" * Common.pageInfo.diff null w przypadku, gdy nie porównujemy wersji, w przeciwnym wypadku wartość występującą w adresie URL */ /*Przestrzeń nazw: Common, zdefiniowanym za pomocą tablicy*/ var Common=new Array(); /*Funkcje w przestrzeni nazw Common*/ Common.Naglowek=function(){ /* Skrypt odpowiedzialny za wyświetlanie szablonu Nagłówek [[Szablon:Nagłówek]] */ var hideAll = document.getElementById('mójNagłówekUkryj'); var noFooter = false; var footers = 0; var tags = document.getElementsByTagName('div'); for (var i = 0; i < tags.length; i++) { var el=tags[i].getAttribute("id"); if (el=='mojaStopka') footers++; else if (hideAll && (el=='mójNagłówek')) { tags[i].innerHTML=""; noFooter=true; } } if (noFooter) return; var footer = document.getElementById('mojaStopka'); if ((footer !== null) && (footers==1)) { var bodyContent = document.getElementById('bodyContent'); if (bodyContent !== null) { var s0=document.getElementById('mojaStopka0'); var s1=document.getElementById('mojaStopka1'); if ((s1 !== null) || ((s0 === null) && (bodyContent.innerHTML.length>8000))){ var strona=document.getElementById('strona'); if(strona!==null){ strona.appendChild(footer); }else{ var catlinks=document.getElementById('catlinks'); if(catlinks !== null){ bodyContent.insertBefore(footer,catlinks); }else{ bodyContent.appendChild(footer); } } } } } /* Koniec skryptu odpowiedzialnego za wyświetlanie szablonu Nagłówek [[Szablon:Nagłówek]] */ }; $(Common.Naglowek); /*Informacje o danej stronie*/ Common.PageInfoInit=function(){ var _g = /_/g; this.name = mw.config.get('wgPageName').replace(/_/g, ' '); this.namespace = mw.config.get('wgNamespaceNumber'); var i = this.name.search(/\/[^\/]*$/g); this.title = this.name.slice(i + 1); this.book = this.name.replace(/\/.*/g, ""); if ( document.URL.search("//pl.wikibooks.org/w/index.php") != -1 ) { re = /\&diff=/g; this.diff = re.test(document.URL); re = /\&action=[^\&]*/g; this.action = document.URL.match(re); if ( this.action === null ) { this.action = 'get'; } else { this.action = this.action[0].slice(8, this.action[0].length); } } else { this.diff = null; this.action = 'get'; } } Common.pageInfo = new Common.PageInfoInit(); /** Collapsible tables ********************************************************* * * Description: Allows tables to be collapsed, showing only the header. See * [[en:Wikipedia:NavFrame]]. * Maintainers: [[User:R. Koot]] */ Common.autoCollapse = 2; Common.collapseCaption = "ukryj"; Common.expandCaption = "pokaż"; Common.collapseTable=function( tableIndex ) { var Button = document.getElementById( "collapseButton" + tableIndex ); var Table = document.getElementById( "collapsibleTable" + tableIndex ); if ( !Table || !Button ) { return false; } var Rows = Table.rows; if ( Button.firstChild.data == Common.collapseCaption ) { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = "none"; } Button.firstChild.data = Common.expandCaption; } else { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = Rows[0].style.display; } Button.firstChild.data = Common.collapseCaption; } } Common.createCollapseButtons=function() { var tableIndex = 0; var NavigationBoxes = new Object(); var Tables = document.getElementsByTagName( "table" ); for ( var i = 0; i < Tables.length; i++ ) { if ( $(Tables[i]).hasClass( "collapsible" ) ) { /* only add button and increment count if there is a header row to work with */ var HeaderRow = Tables[i].getElementsByTagName( "tr" )[0]; if (!HeaderRow) continue; var Header = HeaderRow.getElementsByTagName( "th" )[0]; if (!Header) continue; NavigationBoxes[ tableIndex ] = Tables[i]; Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex ); var Button = document.createElement( "span" ); var ButtonLink = document.createElement( "a" ); var ButtonText = document.createTextNode( Common.collapseCaption ); Button.style.styleFloat = "right"; Button.style.cssFloat = "right"; Button.style.fontWeight = "normal"; Button.style.textAlign = "right"; Button.style.width = "6em"; ButtonLink.style.color = Header.style.color; ButtonLink.setAttribute( "id", "collapseButton" + tableIndex ); ButtonLink.setAttribute( "href", "javascript:Common.collapseTable(" + tableIndex + ");" ); ButtonLink.appendChild( ButtonText ); Button.appendChild( document.createTextNode( "[" ) ); Button.appendChild( ButtonLink ); Button.appendChild( document.createTextNode( "]" ) ); $(Header.childNodes[0]).has('a#collapseButton' + tableIndex).each(function(i,element){ $(element).remove(); }); Header.insertBefore( Button, Header.childNodes[0]); tableIndex++; } } for ( var i = 0; i < tableIndex; i++ ) { if ( $(NavigationBoxes[i]).hasClass( "collapsed" ) || ( tableIndex >= Common.autoCollapse && $(NavigationBoxes[i]).hasClass( "Common.autoCollapse" ) ) ) { Common.collapseTable( i ); } else if ( $(NavigationBoxes[i]).hasClass( "innercollapse" ) ) { var element = NavigationBoxes[i]; while (element = element.parentNode) { if ( $(element).hasClass( "outercollapse" ) ) { Common.collapseTable ( i ); break; } } } } } $(Common.createCollapseButtons ); /** Dynamic Navigation Bars (experimental) ************************************* * * Description: See [[Wikipedia:NavFrame]]. * Maintainers: UNMAINTAINED */ // set up the words in your language Common.NavigationBarHide = '[' + Common.collapseCaption + ']'; Common.NavigationBarShow = '[' + Common.expandCaption + ']'; // shows and hides content and picture (if available) of navigation bars // Parameters: // indexNavigationBar: the index of navigation bar to be toggled Common.toggleNavigationBar=function(indexNavigationBar) { var NavToggle = document.getElementById("NavToggle" + indexNavigationBar); var NavFrame = document.getElementById("NavFrame" + indexNavigationBar); if (!NavFrame || !NavToggle) { return false; } // if shown now if (NavToggle.firstChild.data == Common.NavigationBarHide) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) ) { NavChild.style.display = 'none'; } if ( $(NavChild).hasClass( 'NavContent') ) { NavChild.style.display = 'none'; } } NavToggle.firstChild.data = Common.NavigationBarShow; // if hidden now } else if (NavToggle.firstChild.data == Common.NavigationBarShow) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ($(NavChild).hasClass( 'NavPic')) { NavChild.style.display = 'block'; } if ($(NavChild).hasClass( 'NavContent')) { NavChild.style.display = 'block'; } } NavToggle.firstChild.data = Common.NavigationBarHide; } } // adds show/hide-button to navigation bars Common.createNavigationBarToggleButton=function() { var indexNavigationBar = 0; // iterate over all < div >-elements var divs = document.getElementsByTagName("div"); for (var i = 0; NavFrame = divs[i]; i++) { // if found a navigation bar if ($(NavFrame).hasClass( "NavFrame")) { indexNavigationBar++; var NavToggle = document.createElement("a"); NavToggle.className = 'NavToggle'; NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar); NavToggle.setAttribute('href', 'javascript:Common.toggleNavigationBar(' + indexNavigationBar + ');'); var isCollapsed = $(NavFrame).hasClass( "collapsed" ); /* * Check if any children are already hidden. This loop is here for backwards compatibility: * the old way of making NavFrames start out collapsed was to manually add style="display:none" * to all the NavPic/NavContent elements. Since this was bad for accessibility (no way to make * the content visible without JavaScript support), the new recommended way is to add the class * "collapsed" to the NavFrame itself, just like with collapsible tables. */ for (var NavChild = NavFrame.firstChild; NavChild != null && !isCollapsed; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) || $(NavChild).hasClass( 'NavContent' ) ) { if ( NavChild.style.display == 'none' ) { isCollapsed = true; } } } if (isCollapsed) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) || $(NavChild).hasClass( 'NavContent' ) ) { NavChild.style.display = 'none'; } } } var NavToggleText = document.createTextNode(isCollapsed ? Common.NavigationBarShow : Common.NavigationBarHide); NavToggle.appendChild(NavToggleText); // Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked) for(var j=0; j < NavFrame.childNodes.length; j++) { if ($(NavFrame.childNodes[j]).hasClass( "NavHead")) { $(NavFrame.childNodes[j]).children('a.NavToggle#NavToggle' + indexNavigationBar).each(function(i,element){ $(element).remove(); }); NavFrame.childNodes[j].appendChild(NavToggle); } } NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar); } } } $(Common.createNavigationBarToggleButton ); // Wyszukiwanie Google na stronach podręczników Common.googleSearchInitialized = false; Common.insertGoogleSearch=function() { if ( mw.config.get('wgNamespaceNumber') != 0 || Common.googleSearchInitialized ) { return; } Common.googleSearchInitialized = true; var google = "http://www.google.com/custom?sa=Google+Search&domains=pl.wikibooks.org/wiki/PAGE&sitesearch=pl.wikibooks.org/wiki/PAGE"; var ul = jQuery('#p-tb ul')[0]; if (!ul) { return; } var link = document.createElement('a'); var book = Common.pageInfo.book; if ( book.length == 1 || book.indexOf('++') != -1 || encodeURIComponent(book) != book ) { google = "http://www.google.com/custom?sa=Google+Search&domains=pl.wikibooks.org/wiki/&sitesearch=pl.wikibooks.org/wiki/&q=%22PAGE%22" } link.href = google.replace(/PAGE/g, encodeURIComponent(book)); link.appendChild(document.createTextNode("Szukaj w podręczniku")); var li = document.createElement('li'); li.id = "google-trick-search"; li.appendChild(link); $(ul).children('li#google-trick-search').each(function(i,element){ $(element).remove(); }); ul.insertBefore(li, ul.firstChild); } $(Common.insertGoogleSearch); /*Funkcja do liczenia, czy nastąpiło przepełnienie poziome lub pionowe*/ Common.PobierzSzerokoscPaskaPrzewijania=function(x_box_right){ var div = $('<div style="width:50px;height:50px;overflow:hidden;position:absolute;top:-200px;left:-200px;"><div style="height:100px;"></div></div>'); $('body').append(div); var w1 = $('div', div)["inner"+((x_box_right=="y")?"Width":"Height")](); div.css('overflow-'+(x_box_right||"y"), 'scroll'); var w2 = $('div', div)["inner"+((x_box_right=="y")?"Width":"Height")](); $(div).remove(); return (w1 - w2); } /*Funkcje do obsługi pasków przewijania*/ Common.ScrollBarOverflow=function(){ $('*.mw-overflow-x, *.mw-overflow-y').each(function(i,element_g){ /*start overflow*/ var comp=window.getComputedStyle(element_g, null); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var overflow=comp.getPropertyValue("overflow"); var overflow_x=$(element_g).hasClass('mw-overflow-x'); if(overflow_x){ var overflowX=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); if((overflowX)&&(overflowX=="auto")){ element_g.classList.remove("mw-scrollbar-overflow-x"); const hasHorizontalScrollbar = element_g.scrollWidth > element_g.clientWidth; // true lub false if(hasHorizontalScrollbar){ element_g.classList.add("mw-scrollbar-overflow-x"); } } } var overflow_y=$(element_g).hasClass('mw-overflow-y'); if(overflow_y){ var overflowY=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflowY)&&(overflowY=="auto")){ element_g.classList.remove("mw-scrollbar-overflow-y"); const hasVerticalScrollbar = element_g.scrollHeight > element_g.clientHeight; // true lub false if(hasVerticalScrollbar){ element_g.classList.add("mw-scrollbar-overflow-y"); } } } /*koniec overflow*/ }); } $(function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); $(window).on('scroll', Common.ScrollBarOverflow); $(window).on('resize', Common.ScrollBarOverflow); /*Funkcja symulująca właściwości position:sticky, wszędzie tam, gdzie nie można go użyć.*/ Common.StickyXY=function(){ $('*.mw-sticky-x, *.mw-sticky-y').each(function(i,element_g){ var comp=window.getComputedStyle(element_g, null); function FunStickyXY(height,top,bottom,width_box,left_box,right_box,x_box,x_box_right){ var pozycje_paskow=new Array(); $(element_g).find('*').each(function(i,element){ var comp=window.getComputedStyle(element, null); var overflow=comp.getPropertyValue("overflow"); var overflow_x=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); var overflow_y=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflow_x=="auto")||(overflow_x=="scroll")||(overflow_y=="auto")||(overflow_y=="scroll")){ pozycje_paskow.push(new Array(element,element.scrollTop,element.scrollLeft)); } }); var height_sticky=0; $('html.client-js.vector-sticky-header-enabled body.skin-vector-search-vue.vector-sticky-header-visible header.vector-sticky-header').each(function(i,el){ var rect_sticky=el.getBoundingClientRect(); height_sticky=parseInt(rect_sticky[height]); }); var StickyXYTopOld=$(element_g).data('stickyXYOld-'+top);var StickyXYBottomOld=$(element_g).data('stickyXYOld-'+bottom); if(StickyXYTopOld===undefined){ var topold_war=parseFloat(element_g.style[top]); $(element_g).data('stickyXYOld-'+top,((!isNaN(topold_war))?topold_war:0)); } if(StickyXYBottomOld===undefined){ var bottomold_war=parseFloat(element_g.style[bottom]); $(element_g).data('stickyXYOld-'+bottom,((!isNaN(bottomold_war))?bottomold_war:0)); } var topold=$(element_g).data('stickyXYOld-'+top)+height_sticky+5; var margintop=parseFloat(comp.getPropertyValue("margin-"+top)); margintop=((!isNaN(margintop))?margintop:0); var marginbottom=parseFloat(comp.getPropertyValue("margin-"+bottom)); marginbottom=((!isNaN(marginbottom))?marginbottom:0); var przodek_height=undefined; element_g.style[height]="auto"; element_g.style["max"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[top]="auto"; element_g.style[bottom]="auto"; if(width_box!=null){ element_g.style[width_box]="auto"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[left_box]="auto"; element_g.style[right_box]="0"; $(element_g).find('.mw-not-overflow-'+x_box+'.mw-overflow-'+x_box).each(function(i,element){ element.style[width_box]="auto"; }); } var parents_node_fun=$(element_g).parents('.mw-parent-node').first(); if((parents_node_fun==null)||(parents_node_fun.length==0)){return;} var width_rodzic=null; var rodzic_element=undefined; var comp_rodz; parents_node_fun.each(function(i,element){ comp_rodz=window.getComputedStyle(element,null); przodek_height=parseFloat(comp_rodz.getPropertyValue([height])); width_rodzic=width_box?parseFloat(comp_rodz.getPropertyValue([width_box])):null; rodzic_element=element; }); var height_box_real=parseFloat(comp.getPropertyValue(height)); var rect_dziecko=element_g.getBoundingClientRect(); var wys=document.documentElement["client"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]; var rect_rodzic; parents_node_fun.each(function(i,element){ rect_rodzic=element.getBoundingClientRect(); }); var top_ab=rect_rodzic[top]; var bottom_ab=(wys-rect_rodzic[bottom]); var maxheight=Math.min(przodek_height,wys-((rect_rodzic[top]>=0)?(rect_rodzic[top]):(0))-((bottom_ab>=0)?(bottom_ab):(0)))-(((top_ab<=0)?(topold):(Math.max(0,topold-top_ab)))+((bottom_ab<=0)?($(element_g).data('stickyXYOld-'+bottom)+5):(Math.max(0,$(element_g).data('stickyXYOld-'+bottom)+5-bottom_ab)))+marginbottom+margintop); element_g.style["max"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(((maxheight>=0)?maxheight:0)*(height_box_real/rect_dziecko[height]))+"px"; element_g.style[height]=(element_g["offset"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))])+"px"; var top_obj=(((top_ab>=0)?0:(-top_ab)))+((top_ab<=0)?(topold):(Math.max(0,topold-top_ab))); element_g.style[top]=top_obj+"px"; element_g.style[bottom]="auto"; if(width_box!=null){ element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; rodzic_element.style.position="static"; rodzic_element.style.overflow="hidden"; var width_box_real=parseFloat(comp.getPropertyValue(width_box)); var rect_dziecko=element_g.getBoundingClientRect(); if(parseInt(width_box_real)>parseInt(rect_dziecko[width_box])){ if(width_box=="width"){ element_g.classList.remove('mw-scrollbar-overflow-x'); }else{ element_g.classList.remove('mw-scrollbar-overflow-y'); } if(rect_dziecko[width_box]>width_rodzic){ if(width_box=="width"){ element_g.classList.add('mw-scrollbar-overflow-x'); }else{ element_g.classList.add('mw-scrollbar-overflow-y'); } } var width_box_real=parseFloat(comp.getPropertyValue(width_box)); var margin_all=parseFloat(comp.getPropertyValue("margin-"+left_box))+parseFloat(comp.getPropertyValue("margin-"+right_box)); margin_all+=parseFloat(comp_rodz.getPropertyValue("padding-"+left_box))+parseFloat(comp_rodz.getPropertyValue("padding-"+right_box)); var dlugosc=(width_rodzic-margin_all); dlugosc=((dlugosc>=0)?dlugosc:0); element_g.style.whiteSpace="nowrap"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width_box]))+"px"; element_g.style[width_box]=width_box_real+"px"; Common.ScrollBarOverflow(); $(element_g).find('.mw-overflow-'+x_box+'.mw-not-overflow-'+x_box+'.mw-scrollbar-overflow-'+x_box).each(function(i,element){ var comp_element=window.getComputedStyle(element, null) element.style[width_box]=(element["scroll"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]+Common.PobierzSzerokoscPaskaPrzewijania(x_box_right)+parseFloat(comp_element.getPropertyValue('padding-'+left_box))+parseFloat(comp_element.getPropertyValue('padding-'+right_box)))+"px"; element.classList.remove('mw-scrollbar-overflow-'+x_box_right); }); element_g.style.whiteSpace="normal"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[width_box]="auto"; var rect_dziecko=element_g.getBoundingClientRect(); var width_box_real=parseFloat(comp.getPropertyValue(width_box)); element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width_box]))+"px"; element_g.style[width_box]=width_box_real+"px"; element_g.style[left_box]="0"; element_g.style[right_box]="auto"; rodzic_element.style.position="relative"; }else{ element_g.style.whiteSpace="nowrap"; var szerokosc_box=rect_dziecko[width_box]; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(szerokosc_box)+"px"; element_g.style[width_box]=(szerokosc_box)+"px"; Common.ScrollBarOverflow(); $(element_g).find('.mw-overflow-'+x_box+'.mw-not-overflow-'+x_box+'.mw-scrollbar-overflow-'+x_box).each(function(i,element){ var comp_element=window.getComputedStyle(element, null); element.style[width_box]=(element["scroll"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]+Common.PobierzSzerokoscPaskaPrzewijania(x_box_right)+parseFloat(comp_element.getPropertyValue('padding-'+left_box))+parseFloat(comp_element.getPropertyValue('padding-'+right_box)))+"px"; element.classList.remove('mw-scrollbar-overflow-'+x_box_right); }); element_g.style.whiteSpace="normal"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[width_box]="auto"; var rect_dziecko=element_g.getBoundingClientRect(); var szerokosc_box=rect_dziecko[width_box]; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(szerokosc_box)+"px"; element_g.style[width_box]=(szerokosc_box)+"px"; var szerokosc=rect_dziecko[width_box]+parseFloat(comp.getPropertyValue("margin-"+left_box))+parseFloat(comp.getPropertyValue("margin-"+right_box)); if(parseInt(szerokosc)>parseInt(width_rodzic)){ element_g.style[right_box]="0"; element_g.style[left_box]="auto"; rodzic_element.style.overflow="visible"; }else{ element_g.style[left_box]="0"; element_g.style[right_box]="auto"; rodzic_element.style.position="relative"; } } } element_g.style[height]="auto"; element_g.style[height]=(element_g["offset"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))])+"px"; Common.ScrollBarOverflow(); for(var i in pozycje_paskow){ pozycje_paskow[i][0].scrollTop=pozycje_paskow[i][1]; pozycje_paskow[i][0].scrollLeft=pozycje_paskow[i][2]; } } element_g.classList.add('mw-sticky-js'); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var visibility=comp.getPropertyValue("visibility"); if(visibility=="hidden"){return;} var position=comp.getPropertyValue("position"); if(position!="absolute"){return;} var sticky_x=$(element_g).hasClass('mw-sticky-x'); var sticky_y=$(element_g).hasClass('mw-sticky-y'); if((sticky_x)&&(!sticky_y)){ var str=$(element_g).parents('.strona_górna, .strona_dolna').first(); if(str.hasClass('strona_dolna')){ FunStickyXY("width","left","right","height","top","bottom","y","x"); }else if(str.hasClass('strona_górna')){ FunStickyXY("width","left","right","height","bottom","top","y","x"); } }else if((!sticky_x)&&(sticky_y)){ var str=$(element_g).parents('.strona_prawa, .strona_lewa').first(); if(str.hasClass('strona_prawa')){ FunStickyXY("height","top","bottom","width","left","right","x","y"); }else if(str.hasClass('strona_lewa')){ FunStickyXY("height","top","bottom","width","right","left","x","y"); } }else if((sticky_x)&&(sticky_y)){ FunStickyXY("width","left","right",null); FunStickyXY("height","top","bottom",null); } }); } $(function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); $(window).on('scroll', Common.StickyXY); $(window).on('resize', Common.StickyXY); /*Funkcja do ustawiania maksymalnego rozmiaru dziecka, względem rodzica, przy position:absolute*/ Common.OptimalXY=function(){ $('*.mw-optimal-x, *.mw-optimal-y').each(function(i,element_g){ var comp=window.getComputedStyle(element_g, null); function FunOptimalXY(width,left,right){ var pozycje_paskow=new Array(); $(element_g).find('*').each(function(i,element){ var comp=window.getComputedStyle(element, null); var overflow=comp.getPropertyValue("overflow"); var overflow_x=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); var overflow_y=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflow_x=="auto")||(overflow_x=="scroll")||(overflow_y=="auto")||(overflow_y=="scroll")){ pozycje_paskow.push(new Array(element,element.scrollTop,element.scrollLeft)); } }); var width_rodzic=null; var rodzic_node; var comp_rodz; $(element_g).parents('.mw-parent-node').first().each(function(i,element){ comp_rodz=window.getComputedStyle(element,null); width_rodzic=parseFloat(comp_rodz.getPropertyValue([width])); rodzic_node=element; }); if((width_rodzic!=null)&&(!isNaN(width_rodzic))){ element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; var width_box_real=parseFloat(comp.getPropertyValue(width)); var rect_dziecko=element_g.getBoundingClientRect(); if(width=="width"){ element_g.classList.remove('mw-scrollbar-overflow-x'); }else{ element_g.classList.remove('mw-scrollbar-overflow-y'); } if(parseInt(width_box_real)>parseInt(rect_dziecko[width])){ var rect_dziecko=element_g.getBoundingClientRect(); if(rect_dziecko[width]>width_rodzic){ if(width=="width"){ element_g.classList.add('mw-scrollbar-overflow-x'); }else{ element_g.classList.add('mw-scrollbar-overflow-y'); } } var width_box_real=parseFloat(comp.getPropertyValue(width)); var margin_all=parseFloat(comp.getPropertyValue("margin-"+left))+parseFloat(comp.getPropertyValue("margin-"+right)); margin_all+=parseFloat(comp_rodz.getPropertyValue("padding-"+left))+parseFloat(comp_rodz.getPropertyValue("padding-"+right)); var dlugosc=(width_rodzic-margin_all); dlugosc=((dlugosc>=0)?dlugosc:0); element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width]))+"px"; }else{ element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(rect_dziecko[width])+"px"; } var str=$(element_g).parents('.strona_prawa, .strona_lewa, .strona_górna, .strona_dolna').first(); if(!str.hasClass('strona_start-nawigacja_boksy')){ var rect_dziecko=element_g.getBoundingClientRect(); var szerokosc=rect_dziecko[width]+parseFloat(comp.getPropertyValue("margin-"+left))+parseFloat(comp.getPropertyValue("margin-"+right)); if(parseInt(szerokosc)>parseInt(width_rodzic)){ str.css('position','static'); }else{ str.css('position','relative'); } } } for(var i in pozycje_paskow){ pozycje_paskow[i][0].scrollTop=pozycje_paskow[i][1]; pozycje_paskow[i][0].scrollLeft=pozycje_paskow[i][2]; } }; element_g.classList.add('mw-optimal-js'); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var visibility=comp.getPropertyValue("visibility"); if(visibility=="hidden"){return;} var position=comp.getPropertyValue("position"); if(position!="absolute"){return;} var optimal_x=$(element_g).hasClass('mw-optimal-x'); var optimal_y=$(element_g).hasClass('mw-optimal-y'); if(optimal_x){ FunOptimalXY("width","left","right"); } if(optimal_y){ FunOptimalXY("height","top","bottom"); } }); } $(function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); $(window).on("scroll",Common.OptimalXY); $(window).on("resize",Common.OptimalXY); /*Uruchamianie dodatkowych funkcji, niż standardowe, w href w linkach rozwijanej tabeli TABLE lub ramki DIV, jeśli ona generuje zwiększenie rozmiarów, aby w rodzicu pojawił się pasek przewijania, z dodatkowymi opcjami generowanej przez arkusz kalkulacyjny CSS*/ Common.RamkiTableIDiv=function(obiekt,id_tabeli_lub_ramki,id_nazwa_a,fun_obiektu){ $(obiekt).each(function(i,element_f){ return new Promise(function(resolve,reject){ var czas=0; function Czekaj(){ if(czas>30000){ reject(); } var collapsebutton=$(element_f).find('a#'+id_nazwa_a+i); if((collapsebutton!==null)&&(collapsebutton.length>0)){ var tabele_lub_ramki=collapsebutton.parents('#'+id_tabeli_lub_ramki+i); if((tabele_lub_ramki===null)||(tabele_lub_ramki.length==0)){reject();} resolve(i); }else{ czas+=100; setTimeout(Czekaj,100); } } Czekaj(); }).then(function(i){ $('*.mw-overflow-x a#'+id_nazwa_a+i+', *.mw-overflow-y a#'+id_nazwa_a+i).each(function(j,element_g){ var href=element_g.getAttribute('href'); if((href!=null)&&(href!="")){ var col="[\\s;\\(\\,]*javascript:"+fun_obiektu.replace(/\./g,"\\.")+"\\s*\\(\\s*"+i+"\\s*\\)[\\s;\\)\\,]*"; var re_frame = new RegExp(col,'g'); var re_javascript=new RegExp("^[\\s;]*javascript:"); if((re_javascript.test(href))&&(re_frame.test(href))){ element_g.setAttribute('href',href.replace(/[;\s]*$/g,"")+';javascript:Common.ScrollBarOverflow();javascript:Common.StickyXY();javascript:Common.OptimalXY()') } } }); }).catch(function(){}); }); }; /*Dla menu rozwijanego tabeli TABLE zdefiniowanej na stronie MediaWiki:Common.js*/ Common.RamkiTableIDiv("table.collapsible",'collapsibleTable','collapseButton','Common.collapseTable'); /*Dla menu rozwijanej ramki DIV zdefiniowanej na stronie MediaWiki:Common.js*/ Common.RamkiTableIDiv("div.NavFrame",'NavFrame','NavToggle','Common.toggleNavigationBar'); /*Koniec dodatkowych funkcji*/ /*Uruchamianie dodatkowych zdarzeń do Common.StickyXY i OptimalXY*/ Common.ZdarzeniaDodatkoweFunkcyjneXY=function(css,fun_zdarz){ var fun_css=$(css); fun_css.on('mouseenter',fun_zdarz); fun_css.on('mouseleave',fun_zdarz); fun_css.on('transitionstart',fun_zdarz); fun_css.on('webkittransitionstart',fun_zdarz); fun_css.on('moztransitionstart',fun_zdarz); fun_css.on('otransitionstart',fun_zdarz); fun_css.on('transitionrun',fun_zdarz); fun_css.on('webkittransitionrun',fun_zdarz); fun_css.on('moztransitionrun',fun_zdarz); fun_css.on('otransitionrun',fun_zdarz); fun_css.on('transitioncancel',fun_zdarz); fun_css.on('webkittransitioncancel',fun_zdarz); fun_css.on('moztransitioncancel',fun_zdarz); fun_css.on('otransitioncancel',fun_zdarz); fun_css.on('transitionend',fun_zdarz); fun_css.on('webkittransitionend',fun_zdarz); fun_css.on('moztransitionend',fun_zdarz); fun_css.on('otransitionend',fun_zdarz); }; Common.ZdarzeniaDodatkoweFunkcyjneXY("*.mw-sticky-x, *.mw-sticky-y",Common.StickyXY); Common.ZdarzeniaDodatkoweFunkcyjneXY('*.mw-optimal-x, *.mw-optimal-y',Common.OptimalXY); /*Koniec dodatkowych zdarzeń*/ /*Program do obsługi szablonu StronaStart i jego pokrewnych książkowych*/ Common.StronaStart=function(){ var elements=$('.strona_start .strona .ciało_zawartości > .menu > .menu_boks'); elements.parent().show(); $('.strona_start').find('.strona_lewa .nawigacja_boksy, .strona_prawa .nawigacja_boksy').each(function(i,element){ $(element).css('visibility',"hidden"); }); $('.strona_start').find('.strona_lewa .nawigacja_spis, .strona_prawa .nawigacja_spis').each(function(i,element){ var czy_visible=$(element).css('visibility'); $(element).css('visibility',"visible"); var str=$(element).parents('.strona_prawa, .strona_lewa').first(); str.css('position','relative'); str.addClass('strona_start-nawigacja_spis'); str.removeClass('strona_start-nawigacja_boksy'); if(czy_visible=="hidden"){ $(Common.ScrollBarOverflow); $(Common.StickyXY); } }); function StronaStartFun(){ var id=this; $(id).parents('.strona_start').first().find('.strona .ciało_zawartości > .menu > .menu_boks').children().each(function(i,element){ var display=$(element).css('display'); if(display=="none"){ $(element).css('display',"block"); }else{ $(element).css('display',"none"); } }); $(id).parents('.strona_start').first().find('.strona_lewa, .strona_prawa').children().each(function(i,element){ var visibility=window.getComputedStyle(element, null).getPropertyValue('visibility'); if(visibility=="hidden"){ $(element).css('visibility',"visible"); var str=$(element).parents('.strona_prawa, .strona_lewa').first(); if($(element).hasClass('nawigacja_boksy')){ str.css('position','static'); str.addClass('strona_start-nawigacja_boksy'); str.removeClass('strona_start-nawigacja_spis'); $(Common.ScrollBarOverflow); $(Common.OptimalXY); }else if($(element).hasClass('nawigacja_spis')){ str.css('position','relative'); str.addClass('strona_start-nawigacja_spis'); str.removeClass('strona_start-nawigacja_boksy'); $(Common.ScrollBarOverflow); $(Common.StickyXY); } }else{ $(element).css('visibility',"hidden"); } }); } elements.off('click'); elements.on('click',StronaStartFun); } $(Common.StronaStart); lur31s3lx72mygbmyohg1jtc6jlrulv 437189 437183 2022-08-08T11:30:07Z Persino 2851 javascript text/javascript mw.loader.load( '//pl.wikibooks.org/w/index.php?action=raw&ctype=text/javascript&title=Wikipedysta:Persino/Gadget-StronicowyParser.js', 'text/javascript', true ); /**/ /* Umieszczony tutaj kod JavaScript zostanie załadowany przez każdego użytkownika, podczas każdego ładowania strony. */ // Frame Busting if (top != self) top.location.href = self.location.href; /* * Zmienna Common.pageInfo, jego elementy, instrukcja obsługi: * Common.pageInfo.namespace numer przestrzeni nazw (równe wgNamespaceNumber) * Common.pageInfo.name pełna nazwa strony * Common.pageInfo.title tytuł strony, czyli ostatnia część po '/' albo jest równe pageInfo.name, gdy nigdzie nie występuje slash * Common.pageInfo.book tytuł książki * Common.pageInfo.action akcja taka jaka jest w adresie URL pod "action=", w przypadku normalnego czytania strony, action jest równe "get" * Common.pageInfo.diff null w przypadku, gdy nie porównujemy wersji, w przeciwnym wypadku wartość występującą w adresie URL */ /*Przestrzeń nazw: Common, zdefiniowanym za pomocą tablicy*/ var Common=new Array(); /*Funkcje w przestrzeni nazw Common*/ Common.Naglowek=function(){ /* Skrypt odpowiedzialny za wyświetlanie szablonu Nagłówek [[Szablon:Nagłówek]] */ var hideAll = document.getElementById('mójNagłówekUkryj'); var noFooter = false; var footers = 0; var tags = document.getElementsByTagName('div'); for (var i = 0; i < tags.length; i++) { var el=tags[i].getAttribute("id"); if (el=='mojaStopka') footers++; else if (hideAll && (el=='mójNagłówek')) { tags[i].innerHTML=""; noFooter=true; } } if (noFooter) return; var footer = document.getElementById('mojaStopka'); if ((footer !== null) && (footers==1)) { var bodyContent = document.getElementById('bodyContent'); if (bodyContent !== null) { var s0=document.getElementById('mojaStopka0'); var s1=document.getElementById('mojaStopka1'); if ((s1 !== null) || ((s0 === null) && (bodyContent.innerHTML.length>8000))){ var strona=document.getElementById('strona'); if(strona!==null){ strona.appendChild(footer); }else{ var catlinks=document.getElementById('catlinks'); if(catlinks !== null){ bodyContent.insertBefore(footer,catlinks); }else{ bodyContent.appendChild(footer); } } } } } /* Koniec skryptu odpowiedzialnego za wyświetlanie szablonu Nagłówek [[Szablon:Nagłówek]] */ }; $(Common.Naglowek); /*Informacje o danej stronie*/ Common.PageInfoInit=function(){ var _g = /_/g; this.name = mw.config.get('wgPageName').replace(/_/g, ' '); this.namespace = mw.config.get('wgNamespaceNumber'); var i = this.name.search(/\/[^\/]*$/g); this.title = this.name.slice(i + 1); this.book = this.name.replace(/\/.*/g, ""); if ( document.URL.search("//pl.wikibooks.org/w/index.php") != -1 ) { re = /\&diff=/g; this.diff = re.test(document.URL); re = /\&action=[^\&]*/g; this.action = document.URL.match(re); if ( this.action === null ) { this.action = 'get'; } else { this.action = this.action[0].slice(8, this.action[0].length); } } else { this.diff = null; this.action = 'get'; } } Common.pageInfo = new Common.PageInfoInit(); /** Collapsible tables ********************************************************* * * Description: Allows tables to be collapsed, showing only the header. See * [[en:Wikipedia:NavFrame]]. * Maintainers: [[User:R. Koot]] */ Common.autoCollapse = 2; Common.collapseCaption = "ukryj"; Common.expandCaption = "pokaż"; Common.collapseTable=function( tableIndex ) { var Button = document.getElementById( "collapseButton" + tableIndex ); var Table = document.getElementById( "collapsibleTable" + tableIndex ); if ( !Table || !Button ) { return false; } var Rows = Table.rows; if ( Button.firstChild.data == Common.collapseCaption ) { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = "none"; } Button.firstChild.data = Common.expandCaption; } else { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = Rows[0].style.display; } Button.firstChild.data = Common.collapseCaption; } } Common.createCollapseButtons=function() { var tableIndex = 0; var NavigationBoxes = new Object(); var Tables = document.getElementsByTagName( "table" ); for ( var i = 0; i < Tables.length; i++ ) { if ( $(Tables[i]).hasClass( "collapsible" ) ) { /* only add button and increment count if there is a header row to work with */ var HeaderRow = Tables[i].getElementsByTagName( "tr" )[0]; if (!HeaderRow) continue; var Header = HeaderRow.getElementsByTagName( "th" )[0]; if (!Header) continue; NavigationBoxes[ tableIndex ] = Tables[i]; Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex ); var Button = document.createElement( "span" ); var ButtonLink = document.createElement( "a" ); var ButtonText = document.createTextNode( Common.collapseCaption ); Button.style.styleFloat = "right"; Button.style.cssFloat = "right"; Button.style.fontWeight = "normal"; Button.style.textAlign = "right"; Button.style.width = "6em"; ButtonLink.style.color = Header.style.color; ButtonLink.setAttribute( "id", "collapseButton" + tableIndex ); ButtonLink.setAttribute( "href", "javascript:Common.collapseTable(" + tableIndex + ");" ); ButtonLink.appendChild( ButtonText ); Button.appendChild( document.createTextNode( "[" ) ); Button.appendChild( ButtonLink ); Button.appendChild( document.createTextNode( "]" ) ); $(Header.childNodes[0]).has('a#collapseButton' + tableIndex).each(function(i,element){ $(element).remove(); }); Header.insertBefore( Button, Header.childNodes[0]); tableIndex++; } } for ( var i = 0; i < tableIndex; i++ ) { if ( $(NavigationBoxes[i]).hasClass( "collapsed" ) || ( tableIndex >= Common.autoCollapse && $(NavigationBoxes[i]).hasClass( "autoCollapse" ) ) ) { Common.collapseTable( i ); } else if ( $(NavigationBoxes[i]).hasClass( "innercollapse" ) ) { var element = NavigationBoxes[i]; while (element = element.parentNode) { if ( $(element).hasClass( "outercollapse" ) ) { Common.collapseTable ( i ); break; } } } } } $(Common.createCollapseButtons ); /** Dynamic Navigation Bars (experimental) ************************************* * * Description: See [[Wikipedia:NavFrame]]. * Maintainers: UNMAINTAINED */ // set up the words in your language Common.NavigationBarHide = '[' + Common.collapseCaption + ']'; Common.NavigationBarShow = '[' + Common.expandCaption + ']'; // shows and hides content and picture (if available) of navigation bars // Parameters: // indexNavigationBar: the index of navigation bar to be toggled Common.toggleNavigationBar=function(indexNavigationBar) { var NavToggle = document.getElementById("NavToggle" + indexNavigationBar); var NavFrame = document.getElementById("NavFrame" + indexNavigationBar); if (!NavFrame || !NavToggle) { return false; } // if shown now if (NavToggle.firstChild.data == Common.NavigationBarHide) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) ) { NavChild.style.display = 'none'; } if ( $(NavChild).hasClass( 'NavContent') ) { NavChild.style.display = 'none'; } } NavToggle.firstChild.data = Common.NavigationBarShow; // if hidden now } else if (NavToggle.firstChild.data == Common.NavigationBarShow) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ($(NavChild).hasClass( 'NavPic')) { NavChild.style.display = 'block'; } if ($(NavChild).hasClass( 'NavContent')) { NavChild.style.display = 'block'; } } NavToggle.firstChild.data = Common.NavigationBarHide; } } // adds show/hide-button to navigation bars Common.createNavigationBarToggleButton=function() { var indexNavigationBar = 0; // iterate over all < div >-elements var divs = document.getElementsByTagName("div"); for (var i = 0; NavFrame = divs[i]; i++) { // if found a navigation bar if ($(NavFrame).hasClass( "NavFrame")) { indexNavigationBar++; var NavToggle = document.createElement("a"); NavToggle.className = 'NavToggle'; NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar); NavToggle.setAttribute('href', 'javascript:Common.toggleNavigationBar(' + indexNavigationBar + ');'); var isCollapsed = $(NavFrame).hasClass( "collapsed" ); /* * Check if any children are already hidden. This loop is here for backwards compatibility: * the old way of making NavFrames start out collapsed was to manually add style="display:none" * to all the NavPic/NavContent elements. Since this was bad for accessibility (no way to make * the content visible without JavaScript support), the new recommended way is to add the class * "collapsed" to the NavFrame itself, just like with collapsible tables. */ for (var NavChild = NavFrame.firstChild; NavChild != null && !isCollapsed; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) || $(NavChild).hasClass( 'NavContent' ) ) { if ( NavChild.style.display == 'none' ) { isCollapsed = true; } } } if (isCollapsed) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) || $(NavChild).hasClass( 'NavContent' ) ) { NavChild.style.display = 'none'; } } } var NavToggleText = document.createTextNode(isCollapsed ? Common.NavigationBarShow : Common.NavigationBarHide); NavToggle.appendChild(NavToggleText); // Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked) for(var j=0; j < NavFrame.childNodes.length; j++) { if ($(NavFrame.childNodes[j]).hasClass( "NavHead")) { $(NavFrame.childNodes[j]).children('a.NavToggle#NavToggle' + indexNavigationBar).each(function(i,element){ $(element).remove(); }); NavFrame.childNodes[j].appendChild(NavToggle); } } NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar); } } } $(Common.createNavigationBarToggleButton ); // Wyszukiwanie Google na stronach podręczników Common.googleSearchInitialized = false; Common.insertGoogleSearch=function() { if ( mw.config.get('wgNamespaceNumber') != 0 || Common.googleSearchInitialized ) { return; } Common.googleSearchInitialized = true; var google = "http://www.google.com/custom?sa=Google+Search&domains=pl.wikibooks.org/wiki/PAGE&sitesearch=pl.wikibooks.org/wiki/PAGE"; var ul = jQuery('#p-tb ul')[0]; if (!ul) { return; } var link = document.createElement('a'); var book = Common.pageInfo.book; if ( book.length == 1 || book.indexOf('++') != -1 || encodeURIComponent(book) != book ) { google = "http://www.google.com/custom?sa=Google+Search&domains=pl.wikibooks.org/wiki/&sitesearch=pl.wikibooks.org/wiki/&q=%22PAGE%22" } link.href = google.replace(/PAGE/g, encodeURIComponent(book)); link.appendChild(document.createTextNode("Szukaj w podręczniku")); var li = document.createElement('li'); li.id = "google-trick-search"; li.appendChild(link); $(ul).children('li#google-trick-search').each(function(i,element){ $(element).remove(); }); ul.insertBefore(li, ul.firstChild); } $(Common.insertGoogleSearch); /*Funkcja do liczenia, czy nastąpiło przepełnienie poziome lub pionowe*/ Common.PobierzSzerokoscPaskaPrzewijania=function(x_box_right){ var div = $('<div style="width:50px;height:50px;overflow:hidden;position:absolute;top:-200px;left:-200px;"><div style="height:100px;"></div></div>'); $('body').append(div); var w1 = $('div', div)["inner"+((x_box_right=="y")?"Width":"Height")](); div.css('overflow-'+(x_box_right||"y"), 'scroll'); var w2 = $('div', div)["inner"+((x_box_right=="y")?"Width":"Height")](); $(div).remove(); return (w1 - w2); } /*Funkcje do obsługi pasków przewijania*/ Common.ScrollBarOverflow=function(){ $('*.mw-overflow-x, *.mw-overflow-y').each(function(i,element_g){ /*start overflow*/ var comp=window.getComputedStyle(element_g, null); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var overflow=comp.getPropertyValue("overflow"); var overflow_x=$(element_g).hasClass('mw-overflow-x'); if(overflow_x){ var overflowX=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); if((overflowX)&&(overflowX=="auto")){ element_g.classList.remove("mw-scrollbar-overflow-x"); const hasHorizontalScrollbar = element_g.scrollWidth > element_g.clientWidth; // true lub false if(hasHorizontalScrollbar){ element_g.classList.add("mw-scrollbar-overflow-x"); } } } var overflow_y=$(element_g).hasClass('mw-overflow-y'); if(overflow_y){ var overflowY=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflowY)&&(overflowY=="auto")){ element_g.classList.remove("mw-scrollbar-overflow-y"); const hasVerticalScrollbar = element_g.scrollHeight > element_g.clientHeight; // true lub false if(hasVerticalScrollbar){ element_g.classList.add("mw-scrollbar-overflow-y"); } } } /*koniec overflow*/ }); } $(function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); $(window).on('scroll', Common.ScrollBarOverflow); $(window).on('resize', Common.ScrollBarOverflow); /*Funkcja symulująca właściwości position:sticky, wszędzie tam, gdzie nie można go użyć.*/ Common.StickyXY=function(){ $('*.mw-sticky-x, *.mw-sticky-y').each(function(i,element_g){ var comp=window.getComputedStyle(element_g, null); function FunStickyXY(height,top,bottom,width_box,left_box,right_box,x_box,x_box_right){ var pozycje_paskow=new Array(); $(element_g).find('*').each(function(i,element){ var comp=window.getComputedStyle(element, null); var overflow=comp.getPropertyValue("overflow"); var overflow_x=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); var overflow_y=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflow_x=="auto")||(overflow_x=="scroll")||(overflow_y=="auto")||(overflow_y=="scroll")){ pozycje_paskow.push(new Array(element,element.scrollTop,element.scrollLeft)); } }); var height_sticky=0; $('html.client-js.vector-sticky-header-enabled body.skin-vector-search-vue.vector-sticky-header-visible header.vector-sticky-header').each(function(i,el){ var rect_sticky=el.getBoundingClientRect(); height_sticky=parseInt(rect_sticky[height]); }); var StickyXYTopOld=$(element_g).data('stickyXYOld-'+top);var StickyXYBottomOld=$(element_g).data('stickyXYOld-'+bottom); if(StickyXYTopOld===undefined){ var topold_war=parseFloat(element_g.style[top]); $(element_g).data('stickyXYOld-'+top,((!isNaN(topold_war))?topold_war:0)); } if(StickyXYBottomOld===undefined){ var bottomold_war=parseFloat(element_g.style[bottom]); $(element_g).data('stickyXYOld-'+bottom,((!isNaN(bottomold_war))?bottomold_war:0)); } var topold=$(element_g).data('stickyXYOld-'+top)+height_sticky+5; var margintop=parseFloat(comp.getPropertyValue("margin-"+top)); margintop=((!isNaN(margintop))?margintop:0); var marginbottom=parseFloat(comp.getPropertyValue("margin-"+bottom)); marginbottom=((!isNaN(marginbottom))?marginbottom:0); var przodek_height=undefined; element_g.style[height]="auto"; element_g.style["max"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[top]="auto"; element_g.style[bottom]="auto"; if(width_box!=null){ element_g.style[width_box]="auto"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[left_box]="auto"; element_g.style[right_box]="0"; $(element_g).find('.mw-not-overflow-'+x_box+'.mw-overflow-'+x_box).each(function(i,element){ element.style[width_box]="auto"; }); } var parents_node_fun=$(element_g).parents('.mw-parent-node').first(); if((parents_node_fun==null)||(parents_node_fun.length==0)){return;} var width_rodzic=null; var rodzic_element=undefined; var comp_rodz; parents_node_fun.each(function(i,element){ comp_rodz=window.getComputedStyle(element,null); przodek_height=parseFloat(comp_rodz.getPropertyValue([height])); width_rodzic=width_box?parseFloat(comp_rodz.getPropertyValue([width_box])):null; rodzic_element=element; }); var height_box_real=parseFloat(comp.getPropertyValue(height)); var rect_dziecko=element_g.getBoundingClientRect(); var wys=document.documentElement["client"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]; var rect_rodzic; parents_node_fun.each(function(i,element){ rect_rodzic=element.getBoundingClientRect(); }); var top_ab=rect_rodzic[top]; var bottom_ab=(wys-rect_rodzic[bottom]); var maxheight=Math.min(przodek_height,wys-((rect_rodzic[top]>=0)?(rect_rodzic[top]):(0))-((bottom_ab>=0)?(bottom_ab):(0)))-(((top_ab<=0)?(topold):(Math.max(0,topold-top_ab)))+((bottom_ab<=0)?($(element_g).data('stickyXYOld-'+bottom)+5):(Math.max(0,$(element_g).data('stickyXYOld-'+bottom)+5-bottom_ab)))+marginbottom+margintop); element_g.style["max"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(((maxheight>=0)?maxheight:0)*(height_box_real/rect_dziecko[height]))+"px"; element_g.style[height]=(element_g["offset"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))])+"px"; var top_obj=(((top_ab>=0)?0:(-top_ab)))+((top_ab<=0)?(topold):(Math.max(0,topold-top_ab))); element_g.style[top]=top_obj+"px"; element_g.style[bottom]="auto"; if(width_box!=null){ element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; rodzic_element.style.position="static"; rodzic_element.style.overflow="hidden"; var width_box_real=parseFloat(comp.getPropertyValue(width_box)); var rect_dziecko=element_g.getBoundingClientRect(); if(parseInt(width_box_real)>parseInt(rect_dziecko[width_box])){ if(width_box=="width"){ element_g.classList.remove('mw-scrollbar-overflow-x'); }else{ element_g.classList.remove('mw-scrollbar-overflow-y'); } if(rect_dziecko[width_box]>width_rodzic){ if(width_box=="width"){ element_g.classList.add('mw-scrollbar-overflow-x'); }else{ element_g.classList.add('mw-scrollbar-overflow-y'); } } var width_box_real=parseFloat(comp.getPropertyValue(width_box)); var margin_all=parseFloat(comp.getPropertyValue("margin-"+left_box))+parseFloat(comp.getPropertyValue("margin-"+right_box)); margin_all+=parseFloat(comp_rodz.getPropertyValue("padding-"+left_box))+parseFloat(comp_rodz.getPropertyValue("padding-"+right_box)); var dlugosc=(width_rodzic-margin_all); dlugosc=((dlugosc>=0)?dlugosc:0); element_g.style.whiteSpace="nowrap"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width_box]))+"px"; element_g.style[width_box]=width_box_real+"px"; Common.ScrollBarOverflow(); $(element_g).find('.mw-overflow-'+x_box+'.mw-not-overflow-'+x_box+'.mw-scrollbar-overflow-'+x_box).each(function(i,element){ var comp_element=window.getComputedStyle(element, null) element.style[width_box]=(element["scroll"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]+Common.PobierzSzerokoscPaskaPrzewijania(x_box_right)+parseFloat(comp_element.getPropertyValue('padding-'+left_box))+parseFloat(comp_element.getPropertyValue('padding-'+right_box)))+"px"; element.classList.remove('mw-scrollbar-overflow-'+x_box_right); }); element_g.style.whiteSpace="normal"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[width_box]="auto"; var rect_dziecko=element_g.getBoundingClientRect(); var width_box_real=parseFloat(comp.getPropertyValue(width_box)); element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width_box]))+"px"; element_g.style[width_box]=width_box_real+"px"; element_g.style[left_box]="0"; element_g.style[right_box]="auto"; rodzic_element.style.position="relative"; }else{ element_g.style.whiteSpace="nowrap"; var szerokosc_box=rect_dziecko[width_box]; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(szerokosc_box)+"px"; element_g.style[width_box]=(szerokosc_box)+"px"; Common.ScrollBarOverflow(); $(element_g).find('.mw-overflow-'+x_box+'.mw-not-overflow-'+x_box+'.mw-scrollbar-overflow-'+x_box).each(function(i,element){ var comp_element=window.getComputedStyle(element, null); element.style[width_box]=(element["scroll"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]+Common.PobierzSzerokoscPaskaPrzewijania(x_box_right)+parseFloat(comp_element.getPropertyValue('padding-'+left_box))+parseFloat(comp_element.getPropertyValue('padding-'+right_box)))+"px"; element.classList.remove('mw-scrollbar-overflow-'+x_box_right); }); element_g.style.whiteSpace="normal"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[width_box]="auto"; var rect_dziecko=element_g.getBoundingClientRect(); var szerokosc_box=rect_dziecko[width_box]; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(szerokosc_box)+"px"; element_g.style[width_box]=(szerokosc_box)+"px"; var szerokosc=rect_dziecko[width_box]+parseFloat(comp.getPropertyValue("margin-"+left_box))+parseFloat(comp.getPropertyValue("margin-"+right_box)); if(parseInt(szerokosc)>parseInt(width_rodzic)){ element_g.style[right_box]="0"; element_g.style[left_box]="auto"; rodzic_element.style.overflow="visible"; }else{ element_g.style[left_box]="0"; element_g.style[right_box]="auto"; rodzic_element.style.position="relative"; } } } element_g.style[height]="auto"; element_g.style[height]=(element_g["offset"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))])+"px"; Common.ScrollBarOverflow(); for(var i in pozycje_paskow){ pozycje_paskow[i][0].scrollTop=pozycje_paskow[i][1]; pozycje_paskow[i][0].scrollLeft=pozycje_paskow[i][2]; } } element_g.classList.add('mw-sticky-js'); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var visibility=comp.getPropertyValue("visibility"); if(visibility=="hidden"){return;} var position=comp.getPropertyValue("position"); if(position!="absolute"){return;} var sticky_x=$(element_g).hasClass('mw-sticky-x'); var sticky_y=$(element_g).hasClass('mw-sticky-y'); if((sticky_x)&&(!sticky_y)){ var str=$(element_g).parents('.strona_górna, .strona_dolna').first(); if(str.hasClass('strona_dolna')){ FunStickyXY("width","left","right","height","top","bottom","y","x"); }else if(str.hasClass('strona_górna')){ FunStickyXY("width","left","right","height","bottom","top","y","x"); } }else if((!sticky_x)&&(sticky_y)){ var str=$(element_g).parents('.strona_prawa, .strona_lewa').first(); if(str.hasClass('strona_prawa')){ FunStickyXY("height","top","bottom","width","left","right","x","y"); }else if(str.hasClass('strona_lewa')){ FunStickyXY("height","top","bottom","width","right","left","x","y"); } }else if((sticky_x)&&(sticky_y)){ FunStickyXY("width","left","right",null); FunStickyXY("height","top","bottom",null); } }); } $(function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); $(window).on('scroll', Common.StickyXY); $(window).on('resize', Common.StickyXY); /*Funkcja do ustawiania maksymalnego rozmiaru dziecka, względem rodzica, przy position:absolute*/ Common.OptimalXY=function(){ $('*.mw-optimal-x, *.mw-optimal-y').each(function(i,element_g){ var comp=window.getComputedStyle(element_g, null); function FunOptimalXY(width,left,right){ var pozycje_paskow=new Array(); $(element_g).find('*').each(function(i,element){ var comp=window.getComputedStyle(element, null); var overflow=comp.getPropertyValue("overflow"); var overflow_x=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); var overflow_y=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflow_x=="auto")||(overflow_x=="scroll")||(overflow_y=="auto")||(overflow_y=="scroll")){ pozycje_paskow.push(new Array(element,element.scrollTop,element.scrollLeft)); } }); var width_rodzic=null; var rodzic_node; var comp_rodz; $(element_g).parents('.mw-parent-node').first().each(function(i,element){ comp_rodz=window.getComputedStyle(element,null); width_rodzic=parseFloat(comp_rodz.getPropertyValue([width])); rodzic_node=element; }); if((width_rodzic!=null)&&(!isNaN(width_rodzic))){ element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; var width_box_real=parseFloat(comp.getPropertyValue(width)); var rect_dziecko=element_g.getBoundingClientRect(); if(width=="width"){ element_g.classList.remove('mw-scrollbar-overflow-x'); }else{ element_g.classList.remove('mw-scrollbar-overflow-y'); } if(parseInt(width_box_real)>parseInt(rect_dziecko[width])){ var rect_dziecko=element_g.getBoundingClientRect(); if(rect_dziecko[width]>width_rodzic){ if(width=="width"){ element_g.classList.add('mw-scrollbar-overflow-x'); }else{ element_g.classList.add('mw-scrollbar-overflow-y'); } } var width_box_real=parseFloat(comp.getPropertyValue(width)); var margin_all=parseFloat(comp.getPropertyValue("margin-"+left))+parseFloat(comp.getPropertyValue("margin-"+right)); margin_all+=parseFloat(comp_rodz.getPropertyValue("padding-"+left))+parseFloat(comp_rodz.getPropertyValue("padding-"+right)); var dlugosc=(width_rodzic-margin_all); dlugosc=((dlugosc>=0)?dlugosc:0); element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width]))+"px"; }else{ element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(rect_dziecko[width])+"px"; } var str=$(element_g).parents('.strona_prawa, .strona_lewa, .strona_górna, .strona_dolna').first(); if(!str.hasClass('strona_start-nawigacja_boksy')){ var rect_dziecko=element_g.getBoundingClientRect(); var szerokosc=rect_dziecko[width]+parseFloat(comp.getPropertyValue("margin-"+left))+parseFloat(comp.getPropertyValue("margin-"+right)); if(parseInt(szerokosc)>parseInt(width_rodzic)){ str.css('position','static'); }else{ str.css('position','relative'); } } } for(var i in pozycje_paskow){ pozycje_paskow[i][0].scrollTop=pozycje_paskow[i][1]; pozycje_paskow[i][0].scrollLeft=pozycje_paskow[i][2]; } }; element_g.classList.add('mw-optimal-js'); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var visibility=comp.getPropertyValue("visibility"); if(visibility=="hidden"){return;} var position=comp.getPropertyValue("position"); if(position!="absolute"){return;} var optimal_x=$(element_g).hasClass('mw-optimal-x'); var optimal_y=$(element_g).hasClass('mw-optimal-y'); if(optimal_x){ FunOptimalXY("width","left","right"); } if(optimal_y){ FunOptimalXY("height","top","bottom"); } }); } $(function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); $(window).on("scroll",Common.OptimalXY); $(window).on("resize",Common.OptimalXY); /*Uruchamianie dodatkowych funkcji, niż standardowe, w href w linkach rozwijanej tabeli TABLE lub ramki DIV, jeśli ona generuje zwiększenie rozmiarów, aby w rodzicu pojawił się pasek przewijania, z dodatkowymi opcjami generowanej przez arkusz kalkulacyjny CSS*/ Common.RamkiTableIDiv=function(obiekt,id_tabeli_lub_ramki,id_nazwa_a,fun_obiektu){ $(obiekt).each(function(i,element_f){ return new Promise(function(resolve,reject){ var czas=0; function Czekaj(){ if(czas>30000){ reject(); } var collapsebutton=$(element_f).find('a#'+id_nazwa_a+i); if((collapsebutton!==null)&&(collapsebutton.length>0)){ var tabele_lub_ramki=collapsebutton.parents('#'+id_tabeli_lub_ramki+i); if((tabele_lub_ramki===null)||(tabele_lub_ramki.length==0)){reject();} resolve(i); }else{ czas+=100; setTimeout(Czekaj,100); } } Czekaj(); }).then(function(i){ $('*.mw-overflow-x a#'+id_nazwa_a+i+', *.mw-overflow-y a#'+id_nazwa_a+i).each(function(j,element_g){ var href=element_g.getAttribute('href'); if((href!=null)&&(href!="")){ var col="[\\s;\\(\\,]*javascript:"+fun_obiektu.replace(/\./g,"\\.")+"\\s*\\(\\s*"+i+"\\s*\\)[\\s;\\)\\,]*"; var re_frame = new RegExp(col,'g'); var re_javascript=new RegExp("^[\\s;]*javascript:"); if((re_javascript.test(href))&&(re_frame.test(href))){ element_g.setAttribute('href',href.replace(/[;\s]*$/g,"")+';javascript:Common.ScrollBarOverflow();javascript:Common.StickyXY();javascript:Common.OptimalXY()') } } }); }).catch(function(){}); }); }; /*Dla menu rozwijanego tabeli TABLE zdefiniowanej na stronie MediaWiki:Common.js*/ Common.RamkiTableIDiv("table.collapsible",'collapsibleTable','collapseButton','Common.collapseTable'); /*Dla menu rozwijanej ramki DIV zdefiniowanej na stronie MediaWiki:Common.js*/ Common.RamkiTableIDiv("div.NavFrame",'NavFrame','NavToggle','Common.toggleNavigationBar'); /*Koniec dodatkowych funkcji*/ /*Uruchamianie dodatkowych zdarzeń do Common.StickyXY i OptimalXY*/ Common.ZdarzeniaDodatkoweFunkcyjneXY=function(css,fun_zdarz){ var fun_css=$(css); fun_css.on('mouseenter',fun_zdarz); fun_css.on('mouseleave',fun_zdarz); fun_css.on('transitionstart',fun_zdarz); fun_css.on('webkittransitionstart',fun_zdarz); fun_css.on('moztransitionstart',fun_zdarz); fun_css.on('otransitionstart',fun_zdarz); fun_css.on('transitionrun',fun_zdarz); fun_css.on('webkittransitionrun',fun_zdarz); fun_css.on('moztransitionrun',fun_zdarz); fun_css.on('otransitionrun',fun_zdarz); fun_css.on('transitioncancel',fun_zdarz); fun_css.on('webkittransitioncancel',fun_zdarz); fun_css.on('moztransitioncancel',fun_zdarz); fun_css.on('otransitioncancel',fun_zdarz); fun_css.on('transitionend',fun_zdarz); fun_css.on('webkittransitionend',fun_zdarz); fun_css.on('moztransitionend',fun_zdarz); fun_css.on('otransitionend',fun_zdarz); }; Common.ZdarzeniaDodatkoweFunkcyjneXY("*.mw-sticky-x, *.mw-sticky-y",Common.StickyXY); Common.ZdarzeniaDodatkoweFunkcyjneXY('*.mw-optimal-x, *.mw-optimal-y',Common.OptimalXY); /*Koniec dodatkowych zdarzeń*/ /*Program do obsługi szablonu StronaStart i jego pokrewnych książkowych*/ Common.StronaStart=function(){ var elements=$('.strona_start .strona .ciało_zawartości > .menu > .menu_boks'); elements.parent().show(); $('.strona_start').find('.strona_lewa .nawigacja_boksy, .strona_prawa .nawigacja_boksy').each(function(i,element){ $(element).css('visibility',"hidden"); }); $('.strona_start').find('.strona_lewa .nawigacja_spis, .strona_prawa .nawigacja_spis').each(function(i,element){ var czy_visible=$(element).css('visibility'); $(element).css('visibility',"visible"); var str=$(element).parents('.strona_prawa, .strona_lewa').first(); str.css('position','relative'); str.addClass('strona_start-nawigacja_spis'); str.removeClass('strona_start-nawigacja_boksy'); if(czy_visible=="hidden"){ $(Common.ScrollBarOverflow); $(Common.StickyXY); } }); function StronaStartFun(){ var id=this; $(id).parents('.strona_start').first().find('.strona .ciało_zawartości > .menu > .menu_boks').children().each(function(i,element){ var display=$(element).css('display'); if(display=="none"){ $(element).css('display',"block"); }else{ $(element).css('display',"none"); } }); $(id).parents('.strona_start').first().find('.strona_lewa, .strona_prawa').children().each(function(i,element){ var visibility=window.getComputedStyle(element, null).getPropertyValue('visibility'); if(visibility=="hidden"){ $(element).css('visibility',"visible"); var str=$(element).parents('.strona_prawa, .strona_lewa').first(); if($(element).hasClass('nawigacja_boksy')){ str.css('position','static'); str.addClass('strona_start-nawigacja_boksy'); str.removeClass('strona_start-nawigacja_spis'); $(Common.ScrollBarOverflow); $(Common.OptimalXY); }else if($(element).hasClass('nawigacja_spis')){ str.css('position','relative'); str.addClass('strona_start-nawigacja_spis'); str.removeClass('strona_start-nawigacja_boksy'); $(Common.ScrollBarOverflow); $(Common.StickyXY); } }else{ $(element).css('visibility',"hidden"); } }); } elements.off('click'); elements.on('click',StronaStartFun); } $(Common.StronaStart); 3631wphnvlg4vor9gav0ltuwyantbrm 437190 437189 2022-08-08T11:30:30Z Persino 2851 javascript text/javascript mw.loader.load( '//pl.wikibooks.org/w/index.php?action=raw&ctype=text/javascript&title=Wikipedysta:Persino/Gadget-StronicowyParser.js', 'text/javascript', true ); /**/ /* Umieszczony tutaj kod JavaScript zostanie załadowany przez każdego użytkownika, podczas każdego ładowania strony. */ // Frame Busting if (top != self) top.location.href = self.location.href; /* * Zmienna Common.pageInfo, jego elementy, instrukcja obsługi: * Common.pageInfo.namespace numer przestrzeni nazw (równe wgNamespaceNumber) * Common.pageInfo.name pełna nazwa strony * Common.pageInfo.title tytuł strony, czyli ostatnia część po '/' albo jest równe pageInfo.name, gdy nigdzie nie występuje slash * Common.pageInfo.book tytuł książki * Common.pageInfo.action akcja taka jaka jest w adresie URL pod "action=", w przypadku normalnego czytania strony, action jest równe "get" * Common.pageInfo.diff null w przypadku, gdy nie porównujemy wersji, w przeciwnym wypadku wartość występującą w adresie URL */ /*Przestrzeń nazw: Common, zdefiniowanym za pomocą tablicy*/ var Common=new Array(); /*Funkcje w przestrzeni nazw Common*/ Common.Naglowek=function(){ /* Skrypt odpowiedzialny za wyświetlanie szablonu Nagłówek [[Szablon:Nagłówek]] */ var hideAll = document.getElementById('mójNagłówekUkryj'); var noFooter = false; var footers = 0; var tags = document.getElementsByTagName('div'); for (var i = 0; i < tags.length; i++) { var el=tags[i].getAttribute("id"); if (el=='mojaStopka') footers++; else if (hideAll && (el=='mójNagłówek')) { tags[i].innerHTML=""; noFooter=true; } } if (noFooter) return; var footer = document.getElementById('mojaStopka'); if ((footer !== null) && (footers==1)) { var bodyContent = document.getElementById('bodyContent'); if (bodyContent !== null) { var s0=document.getElementById('mojaStopka0'); var s1=document.getElementById('mojaStopka1'); if ((s1 !== null) || ((s0 === null) && (bodyContent.innerHTML.length>8000))){ var strona=document.getElementById('strona'); if(strona!==null){ strona.appendChild(footer); }else{ var catlinks=document.getElementById('catlinks'); if(catlinks !== null){ bodyContent.insertBefore(footer,catlinks); }else{ bodyContent.appendChild(footer); } } } } } /* Koniec skryptu odpowiedzialnego za wyświetlanie szablonu Nagłówek [[Szablon:Nagłówek]] */ }; $(Common.Naglowek); /*Informacje o danej stronie*/ Common.PageInfoInit=function(){ var _g = /_/g; this.name = mw.config.get('wgPageName').replace(/_/g, ' '); this.namespace = mw.config.get('wgNamespaceNumber'); var i = this.name.search(/\/[^\/]*$/g); this.title = this.name.slice(i + 1); this.book = this.name.replace(/\/.*/g, ""); if ( document.URL.search("//pl.wikibooks.org/w/index.php") != -1 ) { re = /\&diff=/g; this.diff = re.test(document.URL); re = /\&action=[^\&]*/g; this.action = document.URL.match(re); if ( this.action === null ) { this.action = 'get'; } else { this.action = this.action[0].slice(8, this.action[0].length); } } else { this.diff = null; this.action = 'get'; } } Common.pageInfo = new Common.PageInfoInit(); /** Collapsible tables ********************************************************* * * Description: Allows tables to be collapsed, showing only the header. See * [[en:Wikipedia:NavFrame]]. * Maintainers: [[User:R. Koot]] */ Common.autoCollapse = 2; Common.collapseCaption = "ukryj"; Common.expandCaption = "pokaż"; Common.collapseTable=function( tableIndex ) { var Button = document.getElementById( "collapseButton" + tableIndex ); var Table = document.getElementById( "collapsibleTable" + tableIndex ); if ( !Table || !Button ) { return false; } var Rows = Table.rows; if ( Button.firstChild.data == Common.collapseCaption ) { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = "none"; } Button.firstChild.data = Common.expandCaption; } else { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = Rows[0].style.display; } Button.firstChild.data = Common.collapseCaption; } } Common.createCollapseButtons=function() { var tableIndex = 0; var NavigationBoxes = new Object(); var Tables = document.getElementsByTagName( "table" ); for ( var i = 0; i < Tables.length; i++ ) { if ( $(Tables[i]).hasClass( "collapsible" ) ) { /* only add button and increment count if there is a header row to work with */ var HeaderRow = Tables[i].getElementsByTagName( "tr" )[0]; if (!HeaderRow) continue; var Header = HeaderRow.getElementsByTagName( "th" )[0]; if (!Header) continue; NavigationBoxes[ tableIndex ] = Tables[i]; Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex ); var Button = document.createElement( "span" ); var ButtonLink = document.createElement( "a" ); var ButtonText = document.createTextNode( Common.collapseCaption ); Button.style.styleFloat = "right"; Button.style.cssFloat = "right"; Button.style.fontWeight = "normal"; Button.style.textAlign = "right"; Button.style.width = "6em"; ButtonLink.style.color = Header.style.color; ButtonLink.setAttribute( "id", "collapseButton" + tableIndex ); ButtonLink.setAttribute( "href", "javascript:Common.collapseTable(" + tableIndex + ");" ); ButtonLink.appendChild( ButtonText ); Button.appendChild( document.createTextNode( "[" ) ); Button.appendChild( ButtonLink ); Button.appendChild( document.createTextNode( "]" ) ); $(Header.childNodes[0]).has('a#collapseButton' + tableIndex).each(function(i,element){ $(element).remove(); }); Header.insertBefore( Button, Header.childNodes[0]); tableIndex++; } } for ( var i = 0; i < tableIndex; i++ ) { if ( $(NavigationBoxes[i]).hasClass( "collapsed" ) || ( tableIndex >= Common.autoCollapse && $(NavigationBoxes[i]).hasClass( "autocollapse" ) ) ) { Common.collapseTable( i ); } else if ( $(NavigationBoxes[i]).hasClass( "innercollapse" ) ) { var element = NavigationBoxes[i]; while (element = element.parentNode) { if ( $(element).hasClass( "outercollapse" ) ) { Common.collapseTable ( i ); break; } } } } } $(Common.createCollapseButtons ); /** Dynamic Navigation Bars (experimental) ************************************* * * Description: See [[Wikipedia:NavFrame]]. * Maintainers: UNMAINTAINED */ // set up the words in your language Common.NavigationBarHide = '[' + Common.collapseCaption + ']'; Common.NavigationBarShow = '[' + Common.expandCaption + ']'; // shows and hides content and picture (if available) of navigation bars // Parameters: // indexNavigationBar: the index of navigation bar to be toggled Common.toggleNavigationBar=function(indexNavigationBar) { var NavToggle = document.getElementById("NavToggle" + indexNavigationBar); var NavFrame = document.getElementById("NavFrame" + indexNavigationBar); if (!NavFrame || !NavToggle) { return false; } // if shown now if (NavToggle.firstChild.data == Common.NavigationBarHide) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) ) { NavChild.style.display = 'none'; } if ( $(NavChild).hasClass( 'NavContent') ) { NavChild.style.display = 'none'; } } NavToggle.firstChild.data = Common.NavigationBarShow; // if hidden now } else if (NavToggle.firstChild.data == Common.NavigationBarShow) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ($(NavChild).hasClass( 'NavPic')) { NavChild.style.display = 'block'; } if ($(NavChild).hasClass( 'NavContent')) { NavChild.style.display = 'block'; } } NavToggle.firstChild.data = Common.NavigationBarHide; } } // adds show/hide-button to navigation bars Common.createNavigationBarToggleButton=function() { var indexNavigationBar = 0; // iterate over all < div >-elements var divs = document.getElementsByTagName("div"); for (var i = 0; NavFrame = divs[i]; i++) { // if found a navigation bar if ($(NavFrame).hasClass( "NavFrame")) { indexNavigationBar++; var NavToggle = document.createElement("a"); NavToggle.className = 'NavToggle'; NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar); NavToggle.setAttribute('href', 'javascript:Common.toggleNavigationBar(' + indexNavigationBar + ');'); var isCollapsed = $(NavFrame).hasClass( "collapsed" ); /* * Check if any children are already hidden. This loop is here for backwards compatibility: * the old way of making NavFrames start out collapsed was to manually add style="display:none" * to all the NavPic/NavContent elements. Since this was bad for accessibility (no way to make * the content visible without JavaScript support), the new recommended way is to add the class * "collapsed" to the NavFrame itself, just like with collapsible tables. */ for (var NavChild = NavFrame.firstChild; NavChild != null && !isCollapsed; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) || $(NavChild).hasClass( 'NavContent' ) ) { if ( NavChild.style.display == 'none' ) { isCollapsed = true; } } } if (isCollapsed) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ( $(NavChild).hasClass( 'NavPic' ) || $(NavChild).hasClass( 'NavContent' ) ) { NavChild.style.display = 'none'; } } } var NavToggleText = document.createTextNode(isCollapsed ? Common.NavigationBarShow : Common.NavigationBarHide); NavToggle.appendChild(NavToggleText); // Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked) for(var j=0; j < NavFrame.childNodes.length; j++) { if ($(NavFrame.childNodes[j]).hasClass( "NavHead")) { $(NavFrame.childNodes[j]).children('a.NavToggle#NavToggle' + indexNavigationBar).each(function(i,element){ $(element).remove(); }); NavFrame.childNodes[j].appendChild(NavToggle); } } NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar); } } } $(Common.createNavigationBarToggleButton ); // Wyszukiwanie Google na stronach podręczników Common.googleSearchInitialized = false; Common.insertGoogleSearch=function() { if ( mw.config.get('wgNamespaceNumber') != 0 || Common.googleSearchInitialized ) { return; } Common.googleSearchInitialized = true; var google = "http://www.google.com/custom?sa=Google+Search&domains=pl.wikibooks.org/wiki/PAGE&sitesearch=pl.wikibooks.org/wiki/PAGE"; var ul = jQuery('#p-tb ul')[0]; if (!ul) { return; } var link = document.createElement('a'); var book = Common.pageInfo.book; if ( book.length == 1 || book.indexOf('++') != -1 || encodeURIComponent(book) != book ) { google = "http://www.google.com/custom?sa=Google+Search&domains=pl.wikibooks.org/wiki/&sitesearch=pl.wikibooks.org/wiki/&q=%22PAGE%22" } link.href = google.replace(/PAGE/g, encodeURIComponent(book)); link.appendChild(document.createTextNode("Szukaj w podręczniku")); var li = document.createElement('li'); li.id = "google-trick-search"; li.appendChild(link); $(ul).children('li#google-trick-search').each(function(i,element){ $(element).remove(); }); ul.insertBefore(li, ul.firstChild); } $(Common.insertGoogleSearch); /*Funkcja do liczenia, czy nastąpiło przepełnienie poziome lub pionowe*/ Common.PobierzSzerokoscPaskaPrzewijania=function(x_box_right){ var div = $('<div style="width:50px;height:50px;overflow:hidden;position:absolute;top:-200px;left:-200px;"><div style="height:100px;"></div></div>'); $('body').append(div); var w1 = $('div', div)["inner"+((x_box_right=="y")?"Width":"Height")](); div.css('overflow-'+(x_box_right||"y"), 'scroll'); var w2 = $('div', div)["inner"+((x_box_right=="y")?"Width":"Height")](); $(div).remove(); return (w1 - w2); } /*Funkcje do obsługi pasków przewijania*/ Common.ScrollBarOverflow=function(){ $('*.mw-overflow-x, *.mw-overflow-y').each(function(i,element_g){ /*start overflow*/ var comp=window.getComputedStyle(element_g, null); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var overflow=comp.getPropertyValue("overflow"); var overflow_x=$(element_g).hasClass('mw-overflow-x'); if(overflow_x){ var overflowX=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); if((overflowX)&&(overflowX=="auto")){ element_g.classList.remove("mw-scrollbar-overflow-x"); const hasHorizontalScrollbar = element_g.scrollWidth > element_g.clientWidth; // true lub false if(hasHorizontalScrollbar){ element_g.classList.add("mw-scrollbar-overflow-x"); } } } var overflow_y=$(element_g).hasClass('mw-overflow-y'); if(overflow_y){ var overflowY=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflowY)&&(overflowY=="auto")){ element_g.classList.remove("mw-scrollbar-overflow-y"); const hasVerticalScrollbar = element_g.scrollHeight > element_g.clientHeight; // true lub false if(hasVerticalScrollbar){ element_g.classList.add("mw-scrollbar-overflow-y"); } } } /*koniec overflow*/ }); } $(function(){ Common.ScrollBarOverflow(); setTimeout(Common.ScrollBarOverflow,250); }); $(window).on('scroll', Common.ScrollBarOverflow); $(window).on('resize', Common.ScrollBarOverflow); /*Funkcja symulująca właściwości position:sticky, wszędzie tam, gdzie nie można go użyć.*/ Common.StickyXY=function(){ $('*.mw-sticky-x, *.mw-sticky-y').each(function(i,element_g){ var comp=window.getComputedStyle(element_g, null); function FunStickyXY(height,top,bottom,width_box,left_box,right_box,x_box,x_box_right){ var pozycje_paskow=new Array(); $(element_g).find('*').each(function(i,element){ var comp=window.getComputedStyle(element, null); var overflow=comp.getPropertyValue("overflow"); var overflow_x=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); var overflow_y=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflow_x=="auto")||(overflow_x=="scroll")||(overflow_y=="auto")||(overflow_y=="scroll")){ pozycje_paskow.push(new Array(element,element.scrollTop,element.scrollLeft)); } }); var height_sticky=0; $('html.client-js.vector-sticky-header-enabled body.skin-vector-search-vue.vector-sticky-header-visible header.vector-sticky-header').each(function(i,el){ var rect_sticky=el.getBoundingClientRect(); height_sticky=parseInt(rect_sticky[height]); }); var StickyXYTopOld=$(element_g).data('stickyXYOld-'+top);var StickyXYBottomOld=$(element_g).data('stickyXYOld-'+bottom); if(StickyXYTopOld===undefined){ var topold_war=parseFloat(element_g.style[top]); $(element_g).data('stickyXYOld-'+top,((!isNaN(topold_war))?topold_war:0)); } if(StickyXYBottomOld===undefined){ var bottomold_war=parseFloat(element_g.style[bottom]); $(element_g).data('stickyXYOld-'+bottom,((!isNaN(bottomold_war))?bottomold_war:0)); } var topold=$(element_g).data('stickyXYOld-'+top)+height_sticky+5; var margintop=parseFloat(comp.getPropertyValue("margin-"+top)); margintop=((!isNaN(margintop))?margintop:0); var marginbottom=parseFloat(comp.getPropertyValue("margin-"+bottom)); marginbottom=((!isNaN(marginbottom))?marginbottom:0); var przodek_height=undefined; element_g.style[height]="auto"; element_g.style["max"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[top]="auto"; element_g.style[bottom]="auto"; if(width_box!=null){ element_g.style[width_box]="auto"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[left_box]="auto"; element_g.style[right_box]="0"; $(element_g).find('.mw-not-overflow-'+x_box+'.mw-overflow-'+x_box).each(function(i,element){ element.style[width_box]="auto"; }); } var parents_node_fun=$(element_g).parents('.mw-parent-node').first(); if((parents_node_fun==null)||(parents_node_fun.length==0)){return;} var width_rodzic=null; var rodzic_element=undefined; var comp_rodz; parents_node_fun.each(function(i,element){ comp_rodz=window.getComputedStyle(element,null); przodek_height=parseFloat(comp_rodz.getPropertyValue([height])); width_rodzic=width_box?parseFloat(comp_rodz.getPropertyValue([width_box])):null; rodzic_element=element; }); var height_box_real=parseFloat(comp.getPropertyValue(height)); var rect_dziecko=element_g.getBoundingClientRect(); var wys=document.documentElement["client"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]; var rect_rodzic; parents_node_fun.each(function(i,element){ rect_rodzic=element.getBoundingClientRect(); }); var top_ab=rect_rodzic[top]; var bottom_ab=(wys-rect_rodzic[bottom]); var maxheight=Math.min(przodek_height,wys-((rect_rodzic[top]>=0)?(rect_rodzic[top]):(0))-((bottom_ab>=0)?(bottom_ab):(0)))-(((top_ab<=0)?(topold):(Math.max(0,topold-top_ab)))+((bottom_ab<=0)?($(element_g).data('stickyXYOld-'+bottom)+5):(Math.max(0,$(element_g).data('stickyXYOld-'+bottom)+5-bottom_ab)))+marginbottom+margintop); element_g.style["max"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(((maxheight>=0)?maxheight:0)*(height_box_real/rect_dziecko[height]))+"px"; element_g.style[height]=(element_g["offset"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))])+"px"; var top_obj=(((top_ab>=0)?0:(-top_ab)))+((top_ab<=0)?(topold):(Math.max(0,topold-top_ab))); element_g.style[top]=top_obj+"px"; element_g.style[bottom]="auto"; if(width_box!=null){ element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; rodzic_element.style.position="static"; rodzic_element.style.overflow="hidden"; var width_box_real=parseFloat(comp.getPropertyValue(width_box)); var rect_dziecko=element_g.getBoundingClientRect(); if(parseInt(width_box_real)>parseInt(rect_dziecko[width_box])){ if(width_box=="width"){ element_g.classList.remove('mw-scrollbar-overflow-x'); }else{ element_g.classList.remove('mw-scrollbar-overflow-y'); } if(rect_dziecko[width_box]>width_rodzic){ if(width_box=="width"){ element_g.classList.add('mw-scrollbar-overflow-x'); }else{ element_g.classList.add('mw-scrollbar-overflow-y'); } } var width_box_real=parseFloat(comp.getPropertyValue(width_box)); var margin_all=parseFloat(comp.getPropertyValue("margin-"+left_box))+parseFloat(comp.getPropertyValue("margin-"+right_box)); margin_all+=parseFloat(comp_rodz.getPropertyValue("padding-"+left_box))+parseFloat(comp_rodz.getPropertyValue("padding-"+right_box)); var dlugosc=(width_rodzic-margin_all); dlugosc=((dlugosc>=0)?dlugosc:0); element_g.style.whiteSpace="nowrap"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width_box]))+"px"; element_g.style[width_box]=width_box_real+"px"; Common.ScrollBarOverflow(); $(element_g).find('.mw-overflow-'+x_box+'.mw-not-overflow-'+x_box+'.mw-scrollbar-overflow-'+x_box).each(function(i,element){ var comp_element=window.getComputedStyle(element, null) element.style[width_box]=(element["scroll"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]+Common.PobierzSzerokoscPaskaPrzewijania(x_box_right)+parseFloat(comp_element.getPropertyValue('padding-'+left_box))+parseFloat(comp_element.getPropertyValue('padding-'+right_box)))+"px"; element.classList.remove('mw-scrollbar-overflow-'+x_box_right); }); element_g.style.whiteSpace="normal"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[width_box]="auto"; var rect_dziecko=element_g.getBoundingClientRect(); var width_box_real=parseFloat(comp.getPropertyValue(width_box)); element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width_box]))+"px"; element_g.style[width_box]=width_box_real+"px"; element_g.style[left_box]="0"; element_g.style[right_box]="auto"; rodzic_element.style.position="relative"; }else{ element_g.style.whiteSpace="nowrap"; var szerokosc_box=rect_dziecko[width_box]; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(szerokosc_box)+"px"; element_g.style[width_box]=(szerokosc_box)+"px"; Common.ScrollBarOverflow(); $(element_g).find('.mw-overflow-'+x_box+'.mw-not-overflow-'+x_box+'.mw-scrollbar-overflow-'+x_box).each(function(i,element){ var comp_element=window.getComputedStyle(element, null); element.style[width_box]=(element["scroll"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]+Common.PobierzSzerokoscPaskaPrzewijania(x_box_right)+parseFloat(comp_element.getPropertyValue('padding-'+left_box))+parseFloat(comp_element.getPropertyValue('padding-'+right_box)))+"px"; element.classList.remove('mw-scrollbar-overflow-'+x_box_right); }); element_g.style.whiteSpace="normal"; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; element_g.style[width_box]="auto"; var rect_dziecko=element_g.getBoundingClientRect(); var szerokosc_box=rect_dziecko[width_box]; element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(szerokosc_box)+"px"; element_g.style[width_box]=(szerokosc_box)+"px"; var szerokosc=rect_dziecko[width_box]+parseFloat(comp.getPropertyValue("margin-"+left_box))+parseFloat(comp.getPropertyValue("margin-"+right_box)); if(parseInt(szerokosc)>parseInt(width_rodzic)){ element_g.style[right_box]="0"; element_g.style[left_box]="auto"; rodzic_element.style.overflow="visible"; }else{ element_g.style[left_box]="0"; element_g.style[right_box]="auto"; rodzic_element.style.position="relative"; } } } element_g.style[height]="auto"; element_g.style[height]=(element_g["offset"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))])+"px"; Common.ScrollBarOverflow(); for(var i in pozycje_paskow){ pozycje_paskow[i][0].scrollTop=pozycje_paskow[i][1]; pozycje_paskow[i][0].scrollLeft=pozycje_paskow[i][2]; } } element_g.classList.add('mw-sticky-js'); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var visibility=comp.getPropertyValue("visibility"); if(visibility=="hidden"){return;} var position=comp.getPropertyValue("position"); if(position!="absolute"){return;} var sticky_x=$(element_g).hasClass('mw-sticky-x'); var sticky_y=$(element_g).hasClass('mw-sticky-y'); if((sticky_x)&&(!sticky_y)){ var str=$(element_g).parents('.strona_górna, .strona_dolna').first(); if(str.hasClass('strona_dolna')){ FunStickyXY("width","left","right","height","top","bottom","y","x"); }else if(str.hasClass('strona_górna')){ FunStickyXY("width","left","right","height","bottom","top","y","x"); } }else if((!sticky_x)&&(sticky_y)){ var str=$(element_g).parents('.strona_prawa, .strona_lewa').first(); if(str.hasClass('strona_prawa')){ FunStickyXY("height","top","bottom","width","left","right","x","y"); }else if(str.hasClass('strona_lewa')){ FunStickyXY("height","top","bottom","width","right","left","x","y"); } }else if((sticky_x)&&(sticky_y)){ FunStickyXY("width","left","right",null); FunStickyXY("height","top","bottom",null); } }); } $(function(){ Common.StickyXY(); setTimeout(Common.StickyXY,250); }); $(window).on('scroll', Common.StickyXY); $(window).on('resize', Common.StickyXY); /*Funkcja do ustawiania maksymalnego rozmiaru dziecka, względem rodzica, przy position:absolute*/ Common.OptimalXY=function(){ $('*.mw-optimal-x, *.mw-optimal-y').each(function(i,element_g){ var comp=window.getComputedStyle(element_g, null); function FunOptimalXY(width,left,right){ var pozycje_paskow=new Array(); $(element_g).find('*').each(function(i,element){ var comp=window.getComputedStyle(element, null); var overflow=comp.getPropertyValue("overflow"); var overflow_x=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-x")); var overflow_y=(((overflow)&&(overflow!=""))?overflow:comp.getPropertyValue("overflow-y")); if((overflow_x=="auto")||(overflow_x=="scroll")||(overflow_y=="auto")||(overflow_y=="scroll")){ pozycje_paskow.push(new Array(element,element.scrollTop,element.scrollLeft)); } }); var width_rodzic=null; var rodzic_node; var comp_rodz; $(element_g).parents('.mw-parent-node').first().each(function(i,element){ comp_rodz=window.getComputedStyle(element,null); width_rodzic=parseFloat(comp_rodz.getPropertyValue([width])); rodzic_node=element; }); if((width_rodzic!=null)&&(!isNaN(width_rodzic))){ element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none"; var width_box_real=parseFloat(comp.getPropertyValue(width)); var rect_dziecko=element_g.getBoundingClientRect(); if(width=="width"){ element_g.classList.remove('mw-scrollbar-overflow-x'); }else{ element_g.classList.remove('mw-scrollbar-overflow-y'); } if(parseInt(width_box_real)>parseInt(rect_dziecko[width])){ var rect_dziecko=element_g.getBoundingClientRect(); if(rect_dziecko[width]>width_rodzic){ if(width=="width"){ element_g.classList.add('mw-scrollbar-overflow-x'); }else{ element_g.classList.add('mw-scrollbar-overflow-y'); } } var width_box_real=parseFloat(comp.getPropertyValue(width)); var margin_all=parseFloat(comp.getPropertyValue("margin-"+left))+parseFloat(comp.getPropertyValue("margin-"+right)); margin_all+=parseFloat(comp_rodz.getPropertyValue("padding-"+left))+parseFloat(comp_rodz.getPropertyValue("padding-"+right)); var dlugosc=(width_rodzic-margin_all); dlugosc=((dlugosc>=0)?dlugosc:0); element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width]))+"px"; }else{ element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(rect_dziecko[width])+"px"; } var str=$(element_g).parents('.strona_prawa, .strona_lewa, .strona_górna, .strona_dolna').first(); if(!str.hasClass('strona_start-nawigacja_boksy')){ var rect_dziecko=element_g.getBoundingClientRect(); var szerokosc=rect_dziecko[width]+parseFloat(comp.getPropertyValue("margin-"+left))+parseFloat(comp.getPropertyValue("margin-"+right)); if(parseInt(szerokosc)>parseInt(width_rodzic)){ str.css('position','static'); }else{ str.css('position','relative'); } } } for(var i in pozycje_paskow){ pozycje_paskow[i][0].scrollTop=pozycje_paskow[i][1]; pozycje_paskow[i][0].scrollLeft=pozycje_paskow[i][2]; } }; element_g.classList.add('mw-optimal-js'); var display=comp.getPropertyValue("display"); if(display=="none"){return;} var visibility=comp.getPropertyValue("visibility"); if(visibility=="hidden"){return;} var position=comp.getPropertyValue("position"); if(position!="absolute"){return;} var optimal_x=$(element_g).hasClass('mw-optimal-x'); var optimal_y=$(element_g).hasClass('mw-optimal-y'); if(optimal_x){ FunOptimalXY("width","left","right"); } if(optimal_y){ FunOptimalXY("height","top","bottom"); } }); } $(function(){ Common.OptimalXY(); setTimeout(Common.OptimalXY,250); }); $(window).on("scroll",Common.OptimalXY); $(window).on("resize",Common.OptimalXY); /*Uruchamianie dodatkowych funkcji, niż standardowe, w href w linkach rozwijanej tabeli TABLE lub ramki DIV, jeśli ona generuje zwiększenie rozmiarów, aby w rodzicu pojawił się pasek przewijania, z dodatkowymi opcjami generowanej przez arkusz kalkulacyjny CSS*/ Common.RamkiTableIDiv=function(obiekt,id_tabeli_lub_ramki,id_nazwa_a,fun_obiektu){ $(obiekt).each(function(i,element_f){ return new Promise(function(resolve,reject){ var czas=0; function Czekaj(){ if(czas>30000){ reject(); } var collapsebutton=$(element_f).find('a#'+id_nazwa_a+i); if((collapsebutton!==null)&&(collapsebutton.length>0)){ var tabele_lub_ramki=collapsebutton.parents('#'+id_tabeli_lub_ramki+i); if((tabele_lub_ramki===null)||(tabele_lub_ramki.length==0)){reject();} resolve(i); }else{ czas+=100; setTimeout(Czekaj,100); } } Czekaj(); }).then(function(i){ $('*.mw-overflow-x a#'+id_nazwa_a+i+', *.mw-overflow-y a#'+id_nazwa_a+i).each(function(j,element_g){ var href=element_g.getAttribute('href'); if((href!=null)&&(href!="")){ var col="[\\s;\\(\\,]*javascript:"+fun_obiektu.replace(/\./g,"\\.")+"\\s*\\(\\s*"+i+"\\s*\\)[\\s;\\)\\,]*"; var re_frame = new RegExp(col,'g'); var re_javascript=new RegExp("^[\\s;]*javascript:"); if((re_javascript.test(href))&&(re_frame.test(href))){ element_g.setAttribute('href',href.replace(/[;\s]*$/g,"")+';javascript:Common.ScrollBarOverflow();javascript:Common.StickyXY();javascript:Common.OptimalXY()') } } }); }).catch(function(){}); }); }; /*Dla menu rozwijanego tabeli TABLE zdefiniowanej na stronie MediaWiki:Common.js*/ Common.RamkiTableIDiv("table.collapsible",'collapsibleTable','collapseButton','Common.collapseTable'); /*Dla menu rozwijanej ramki DIV zdefiniowanej na stronie MediaWiki:Common.js*/ Common.RamkiTableIDiv("div.NavFrame",'NavFrame','NavToggle','Common.toggleNavigationBar'); /*Koniec dodatkowych funkcji*/ /*Uruchamianie dodatkowych zdarzeń do Common.StickyXY i OptimalXY*/ Common.ZdarzeniaDodatkoweFunkcyjneXY=function(css,fun_zdarz){ var fun_css=$(css); fun_css.on('mouseenter',fun_zdarz); fun_css.on('mouseleave',fun_zdarz); fun_css.on('transitionstart',fun_zdarz); fun_css.on('webkittransitionstart',fun_zdarz); fun_css.on('moztransitionstart',fun_zdarz); fun_css.on('otransitionstart',fun_zdarz); fun_css.on('transitionrun',fun_zdarz); fun_css.on('webkittransitionrun',fun_zdarz); fun_css.on('moztransitionrun',fun_zdarz); fun_css.on('otransitionrun',fun_zdarz); fun_css.on('transitioncancel',fun_zdarz); fun_css.on('webkittransitioncancel',fun_zdarz); fun_css.on('moztransitioncancel',fun_zdarz); fun_css.on('otransitioncancel',fun_zdarz); fun_css.on('transitionend',fun_zdarz); fun_css.on('webkittransitionend',fun_zdarz); fun_css.on('moztransitionend',fun_zdarz); fun_css.on('otransitionend',fun_zdarz); }; Common.ZdarzeniaDodatkoweFunkcyjneXY("*.mw-sticky-x, *.mw-sticky-y",Common.StickyXY); Common.ZdarzeniaDodatkoweFunkcyjneXY('*.mw-optimal-x, *.mw-optimal-y',Common.OptimalXY); /*Koniec dodatkowych zdarzeń*/ /*Program do obsługi szablonu StronaStart i jego pokrewnych książkowych*/ Common.StronaStart=function(){ var elements=$('.strona_start .strona .ciało_zawartości > .menu > .menu_boks'); elements.parent().show(); $('.strona_start').find('.strona_lewa .nawigacja_boksy, .strona_prawa .nawigacja_boksy').each(function(i,element){ $(element).css('visibility',"hidden"); }); $('.strona_start').find('.strona_lewa .nawigacja_spis, .strona_prawa .nawigacja_spis').each(function(i,element){ var czy_visible=$(element).css('visibility'); $(element).css('visibility',"visible"); var str=$(element).parents('.strona_prawa, .strona_lewa').first(); str.css('position','relative'); str.addClass('strona_start-nawigacja_spis'); str.removeClass('strona_start-nawigacja_boksy'); if(czy_visible=="hidden"){ $(Common.ScrollBarOverflow); $(Common.StickyXY); } }); function StronaStartFun(){ var id=this; $(id).parents('.strona_start').first().find('.strona .ciało_zawartości > .menu > .menu_boks').children().each(function(i,element){ var display=$(element).css('display'); if(display=="none"){ $(element).css('display',"block"); }else{ $(element).css('display',"none"); } }); $(id).parents('.strona_start').first().find('.strona_lewa, .strona_prawa').children().each(function(i,element){ var visibility=window.getComputedStyle(element, null).getPropertyValue('visibility'); if(visibility=="hidden"){ $(element).css('visibility',"visible"); var str=$(element).parents('.strona_prawa, .strona_lewa').first(); if($(element).hasClass('nawigacja_boksy')){ str.css('position','static'); str.addClass('strona_start-nawigacja_boksy'); str.removeClass('strona_start-nawigacja_spis'); $(Common.ScrollBarOverflow); $(Common.OptimalXY); }else if($(element).hasClass('nawigacja_spis')){ str.css('position','relative'); str.addClass('strona_start-nawigacja_spis'); str.removeClass('strona_start-nawigacja_boksy'); $(Common.ScrollBarOverflow); $(Common.StickyXY); } }else{ $(element).css('visibility',"hidden"); } }); } elements.off('click'); elements.on('click',StronaStartFun); } $(Common.StronaStart); qfhvp65uxix6cy3e97vc73zxo8f1kvq