Template talk:Hidden
Add topicDefault?
[edit]Is there any chance of including this into the default monobook for the mediawiki distribution?
Documentation
[edit]Requires css and js, see below.
Example:
{{hidden|abc|*def
*ghi}}
gives:
abc
|
|---|
*def
|
See also w:en:Template:Hidden.
Discussion
[edit]From w:en:Template:Hidden; does not work here. What do we need to make it work?--Patrick 13:43, 30 January 2006 (UTC)
Do we need parts of w:en:MediaWiki:Monobook.js?--Patrick 13:59, 30 January 2006 (UTC)
Yepp, you need first the css:
/* Standard Navigationsleisten, aka box hiding thingy from .de.*/
div.Boxmerge,
div.NavFrame {
margin: 0px;
padding: 2px;
border: 1px solid #aaaaaa;
text-align: center;
border-collapse: collapse;
font-size: 95%;
}
div.Boxmerge div.NavFrame {
border-style: none;
border-style: hidden;
}
div.NavFrame + div.NavFrame {
border-top-style: none;
border-top-style: hidden;
}
div.NavPic {
background-color: #ffffff;
margin: 0px;
padding: 2px;
float: left;
}
div.NavFrame div.NavHead {
height: 1.6em;
font-weight: bold;
font-size: 100%;
background-color: #efefef;
position:relative;
}
div.NavFrame p {
font-size: 100%;
}
div.NavFrame div.NavContent {
font-size: 100%;
}
div.NavFrame div.NavContent p {
font-size: 100%;
}
div.NavEnd {
margin: 0px;
padding: 0px;
line-height: 1px;
clear: both;
}
a.NavToggle {
position:absolute;
top:0px;
right:3px;
font-weight:normal;
font-size:smaller;
}
And the javascript:
// ============================================================
// BEGIN Dynamic Navigation Bars (experimantal)
// set up the words in your language
var NavigationBarHide = '[ Hide ]';
var NavigationBarShow = '[ Show ]';
// set up max count of Navigation Bars on page,
// if there are more, all will be hidden
// NavigationBarShowDefault = 0; // all bars will be hidden
// NavigationBarShowDefault = 1; // on pages with more than 1 bar all bars will be hidden
var NavigationBarShowDefault = 1;
// shows and hides content and picture (if available) of navigation bars
// Parameters:
// indexNavigationBar: the index of navigation bar to be toggled
function toggleNavigationBar(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 == NavigationBarHide) {
for (
var NavChild = NavFrame.firstChild;
NavChild != null;
NavChild = NavChild.nextSibling
) {
if (NavChild.className == 'NavPic') {
NavChild.style.display = 'none';
}
if (NavChild.className == 'NavContent') {
NavChild.style.display = 'none';
}
}
NavToggle.firstChild.data = NavigationBarShow;
// if hidden now
} else if (NavToggle.firstChild.data == NavigationBarShow) {
for (
var NavChild = NavFrame.firstChild;
NavChild != null;
NavChild = NavChild.nextSibling
) {
if (NavChild.className == 'NavPic') {
NavChild.style.display = 'block';
}
if (NavChild.className == 'NavContent') {
NavChild.style.display = 'block';
}
}
NavToggle.firstChild.data = NavigationBarHide;
}
}
// adds show/hide-button to navigation bars
function createNavigationBarToggleButton()
{
var indexNavigationBar = 0;
// iterate over all < div >-elements
for(
var i=0;
NavFrame = document.getElementsByTagName("div")[i];
i++
) {
// if found a navigation bar
if (NavFrame.className == "NavFrame") {
indexNavigationBar++;
var NavToggle = document.createElement("a");
NavToggle.className = 'NavToggle';
NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar);
NavToggle.setAttribute('href', 'javascript:toggleNavigationBar(' + indexNavigationBar + ');');
var NavToggleText = document.createTextNode(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].className == "NavHead") {
NavFrame.childNodes[j].appendChild(NavToggle);
}
}
NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar);
}
}
// if more Navigation Bars found than Default: hide all
if (NavigationBarShowDefault < indexNavigationBar) {
for(
var i=1;
i<=indexNavigationBar;
i++
) {
toggleNavigationBar(i);
}
}
}
addLoadEvent(createNavigationBarToggleButton);
// END Dynamic Navigation Bars
// ============================================================
(Both from Monobook.css and Monobook.js on en:wikipedia AzaToth 17:05, 30 January 2006 (UTC)
- Hm, I tried it with User:Patrick/monobook.js and User:Patrick/monobook.css on meta, but it does not work.--Patrick 02:13, 31 January 2006 (UTC)
- Oops, I forgot the addLoadEvent:
function addLoadEvent(func)
{
if (window.addEventListener)
window.addEventListener("load", func, false);
else if (window.attachEvent)
window.attachEvent("onload", func);
}
Thanks, it works now. Very good. One thing: in Meta I get show/hide in the right margin, while on Wikipedia I get them right after the text. Where is this controlled? Any idea why this differs?--Patrick 10:12, 31 January 2006 (UTC)
It still works here, but no longer on w:en (for me).--Patrick 10:21, 16 March 2006 (UTC)
Where do you add this part to? --151.197.188.16 23:50, 14 June 2006 (UTC)
function addLoadEvent(func)
{
if (window.addEventListener)
window.addEventListener("load", func, false);
else if (window.attachEvent)
window.attachEvent("onload", func);
}
- I see, the top of monobook.js. This is really handy on my wiki http://theplaz.com Thanks for your helpful page :)--151.197.188.16 23:51, 14 June 2006 (UTC)
Edit request:CSS
[edit]This edit request has been answered. Set the |answered= or |ans= parameter to no to reactivate your request. |
Could someone with template-edit privileges add a custom CSS parameter by replacing the top line with:
{| class="mw-collapsible {{#ifeq: {{{state|collapsed}}} | collapsed | mw-collapsed }}" style="margin: 2px 0; background: #FFF; color: #000; width: {{{width|100%}}}; border: 1px solid #AAA; padding: 0; border-spacing: 0; border-collapse: collapse;{{{style|{{{css|}}}}}}"