Diskuse k MediaWiki:Common.js
Podpora pro navboxy
Pustil jsem se do zprovozňování šablon pro navigační šablony převzatý z en. Potřeboval bych upravit Common.js po vzoru en. Bohužel si nejsem úplně jistý, co všechno je třeba přejmout. Myslím, že jsou to zejména následující kód:
/** Collapsible tables ********************************************************* * * Description: Allows tables to be collapsed, showing only the header. See * [[Wikipedia:NavFrame]]. * Maintainers: [[User:R. Koot]] */ var autoCollapse = 2; var collapseCaption = "hide"; var expandCaption = "show"; function collapseTable( 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 == collapseCaption ) { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = "none"; } Button.firstChild.data = expandCaption; } else { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = Rows[0].style.display; } Button.firstChild.data = collapseCaption; } } function createCollapseButtons() { var tableIndex = 0; var NavigationBoxes = new Object(); var Tables = document.getElementsByTagName( "table" ); for ( var i = 0; i < Tables.length; i++ ) { if ( hasClass( Tables[i], "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( collapseCaption ); Button.className = "collapseButton"; //Styles are declared in Common.css ButtonLink.style.color = Header.style.color; ButtonLink.setAttribute( "id", "collapseButton" + tableIndex ); ButtonLink.setAttribute( "href", "javascript:collapseTable(" + tableIndex + ");" ); ButtonLink.appendChild( ButtonText ); Button.appendChild( document.createTextNode( "[" ) ); Button.appendChild( ButtonLink ); Button.appendChild( document.createTextNode( "]" ) ); Header.insertBefore( Button, Header.childNodes[0] ); tableIndex++; } } for ( var i = 0; i < tableIndex; i++ ) { if ( hasClass( NavigationBoxes[i], "collapsed" ) || ( tableIndex >= autoCollapse && hasClass( NavigationBoxes[i], "autocollapse" ) ) ) { collapseTable( i ); } else if ( hasClass( NavigationBoxes[i], "innercollapse" ) ) { var element = NavigationBoxes[i]; while (element = element.parentNode) { if ( hasClass( element, "outercollapse" ) ) { collapseTable ( i ); break; } } } } }
Na en je zakončený ještě řádkem:
addOnloadHook( createCollapseButtons );
ale jestli to chápu dobře, na cs se tohle řeší přidáním řádku do function CustomizeCsWikipedia ():
createCollapseButtons();
Samozřejmě bude třeba ještě několik úprav. Kromě přepsání zakomentované hlavičky (klidně můžu být uveden jako maintainer; z popisu je třeba vyhodit odkaz na Wikipedia:NavFrame, který je stejně zastaralý, neboť systém využívá "collapsible tables" popsaný na en:Help:Collapsing), bude třeba přeložit collapseCaption a expandCaption, tedy měly by mít hodnotu "skryj" a "ukaž", resp. "skrýt" a "ukázat", pokud by se rozkazovací způsob nelíbil.
No a pak bude potřeba upravit MediaWiki:Common.css, tam bude potřeba vložit kód:
/* Default skin for navigation boxes */ table.navbox { /* Navbox container style */ border: 1px solid #aaa; width: 100%; margin: auto; clear: both; font-size: 88%; text-align: center; padding: 1px; } table.navbox + table.navbox { /* Single pixel border between adjacent navboxes */ margin-top: -1px; /* (doesn't work for IE6, but that's okay) */ } .navbox-title, .navbox-abovebelow, table.navbox th { text-align: center; /* Title and above/below styles */ padding-left: 1em; padding-right: 1em; } .navbox-group { /* Group style */ white-space: nowrap; text-align: right; font-weight: bold; padding-left: 1em; padding-right: 1em; } .navbox, .navbox-subgroup { background: #fdfdfd; /* Background color */ } .navbox-list { border-color: #fdfdfd; /* Must match background color */ } .navbox-title, table.navbox th { background: #ccccff; /* Level 1 color */ } .navbox-abovebelow, .navbox-group, .navbox-subgroup .navbox-title { background: #ddddff; /* Level 2 color */ } .navbox-subgroup .navbox-group, .navbox-subgroup .navbox-abovebelow { background: #e6e6ff; /* Level 3 color */ } .navbox-even { background: #f7f7f7; /* Even row striping */ } .navbox-odd { background: transparent; /* Odd row striping */ } .collapseButton { /* 'show'/'hide' buttons created dynamically */ float: right; /* by the CollapsibleTables javascript in */ font-weight: normal; /* [[MediaWiki:Common.js]]are styled here */ text-align: right; /* so they can be customised. */ width: auto; } .navbox .collapseButton { /* In navboxes, the show/hide button balances */ width: 6em; /* the vde links from [[Template:Tnavbar]], */ } /* so they need to be the same width. */
Může mi s tím někdo pomoci a tyto věci přidat? Díky. Miraceti 26. 6. 2009, 12:42 (UTC)
- For the record: já rozhodně ne. --Mormegil ✉ 26. 6. 2009, 12:53 (UTC)
- Tvoje řešení jsem neznal, AJAX by byl v lecčems lepší. Ale po té, co jsem dneska ráno sledoval, jak se tu mění navigační šablony jedna podruhé, jsem si řekl, že je třeba s tím něco udělat. Tohle sice není s AJAXem, ale k tomu nebude zas takový problém se časem propracovat. Mým hlavním cílem je dneska sjednotit přístupy vytváření navboxů jednotlivými uživateli, když už se ty navboxy používají (taky bych je tu radši neměl). V této chvíli je podle mě nejrozumější převzít fungující systém z jiného projektu a rozchodit ho zde
(což se mi zatím nepodařilo). Miraceti 26. 6. 2009, 13:25 (UTC)
- Tvoje řešení jsem neznal, AJAX by byl v lecčems lepší. Ale po té, co jsem dneska ráno sledoval, jak se tu mění navigační šablony jedna podruhé, jsem si řekl, že je třeba s tím něco udělat. Tohle sice není s AJAXem, ale k tomu nebude zas takový problém se časem propracovat. Mým hlavním cílem je dneska sjednotit přístupy vytváření navboxů jednotlivými uživateli, když už se ty navboxy používají (taky bych je tu radši neměl). V této chvíli je podle mě nejrozumější převzít fungující systém z jiného projektu a rozchodit ho zde
Infinitiv místo rozkazovacího způsobu
Navrhuji změnit řetězec "skryj" na "skrýt" a "ukaž" na "ukázat". Jak jsem již zmínil na Nástěnce správců infinitiv je v uživatelských rozhraních v češtině na PC a i na Wikipedii (Editovat, Ukázat náhled) používanější a dle mého názoru lépe zní. Rovněž by došlo ke sjednocení pokynů v rámci české Wikipedie. Píšu to i jsem, když to souvisí s touto stránkou a jsem ten, komu se rozkazovací způsob nelíbí (viz výše). Děkuji --Phobulos 8. 9. 2011, 16:43 (UTC)
- Zobrazit je ještě lepší než ukázat. Ještě jednou díky. --Phobulos 9. 9. 2011, 17:41 (UTC)