Benutzer Diskussion:CF
| Benutzerdiskussion von CF |
|
Bearbeitunszusammenfassung
Hallo CF,
ich habe eine bitte an dich: Ich habe in der Jedipedia, welche ich ab und zu als Informationsquelle für Star Wars nutze, einen Code gefunden, der das Einfügen von Bearbeitungszusammenfassungen via Dropdownlisten erlaubt. Dieser findet sich hier und lautet wie folgt:
// onload stuff
var firstRun = true;
function loadFunc()
{
if(firstRun)
firstRun = false;
else
return;
initFunctionsJS();
if(document.getElementById('mp3-navlink') != null)
{
document.getElementById('mp3-navlink').onclick = onArticleNavClick;
document.getElementById('mp3-navlink').getElementsByTagName('a')[0].href = 'javascript:void(0)';
}
if(window.storagePresent)
initVisibility();
rewriteTitle();
showEras('title-eraicons');
showEras('title-shortcut');
fillEditSummaries();
if (wgAction=="edit" || wgAction=="submit") fillPreloads();
var body = document.getElementsByTagName('body')[0];
var bodyClass = body.className;
if(!bodyClass || (bodyClass.indexOf('page-') == -1))
{
var page = window.pageName.replace(/\W/g, '_');
body.className += ' page-' + page;
}
if(typeof(onPageLoad) != "undefined")
{
onPageLoad();
}
}
function fillEditSummaries()
{
var label = document.getElementById("wpSummaryLabel");
if(label == null)
return;
label.innerHTML = '<div style="margin-bottom: 1px;">Standard-Zusammenfassungen: <select id="stdSummaries" onchange="onStdSummaryChange()"></select></div>' + label.innerHTML;
requestComboFill('stdSummaries', 'Template:Stdsummaries');
}
function onStdSummaryChange()
{
var combo = document.getElementById("stdSummaries");
var value = combo.options[combo.selectedIndex].value;
if(value != "")
document.getElementById("wpSummary").value = value;
}
function fillPreloads() {
if (document.getElementById("toolbar")==null) return;
document.getElementById("toolbar").innerHTML += '<div style="position: absolute; margin-left: 255px;"><select id="stdPreloads" onchange="onPreloadChange()"></select></div>';
requestComboFill('stdPreloads', "Vorlage:Stdpreloads");
}
function onPreloadChange()
{
var combo = document.getElementById("stdPreloads");
var value = combo.options[combo.selectedIndex].value;
if(value == "")
return;
value = "Vorlage:" + value + "/preload";
value = value.replace(" ", "_");
doPreload(value);
}
addOnloadHook(loadFunc);
Nun habe ich den Code und die zugehörige Vorlage (Vorlage:Stdsummaries) in unser Wiki kopiert. Jedoch erfüllt die Funktion nicht ihren Zweck, woraus folgt, dass ich irgendetwas falsch gemacht habe. Da meine Informatik-Kenntnisse bestenfalls rudimentär sind, würde ich dich bitten den Code mal unter die Lupe zu nehmen (wenn du mal irgendwann Zeit hast). Viele Grüße--Philipp [ Bürokrat · Disk ·
] 08:46, 1. Jul. 2010 (CEST)
- Es gab glaube ich mal eine Diskussion über diese Thema; ich finde sie grade leider nicht. Das Ergebnis war, dass man Zusammenfassungen nicht auswählen sollte, da sonst einfach etwas angeklickt wird ohne sich genauer Gedanken über die Art der Bearbeitung zu machen. Ansonsten sollte folgendes funktionieren:
addOnloadHook(function()
{
if (wgAction != "edit") return;
var label = document.createElement("label");
label.for = "stdSummaries";
label.appendChild(document.createTextNode("Standard-Zusammenfassungen:"));
var sel = document.createElement("select");
sel.id = "stdSummaries";
sel.name = "stdSummaries";
sel.onchange = function()
{
var sel = document.getElementById("stdSummaries");
var value = sel.options[sel.selectedIndex].value;
if (value != "")
document.getElementById("wpSummary").value = value;
};
var eo = document.getElementById("wpSummaryLabel").parentNode;
eo.insertBefore(document.createElement("br"), eo.firstChild);
eo.insertBefore(sel, eo.firstChild);
eo.insertBefore(label, sel);
$.get(wgScript+"?title=Vorlage:Stdsummaries&action=raw&ctype=text/plain", function(text)
{
var sel = document.getElementById("stdSummaries");
var lines = text.split("\n");
for (var i=0; i<lines.length; i++)
{
if (lines[i].indexOf("<!--") == 0) continue;
var value = lines[i].indexOf("-- ") == 0 ? lines[i].substring(3) : "";
var opt = document.createElement("option");
opt.value = value;
if (value == "")
opt.disabled = "disabled";
opt.appendChild(document.createTextNode(lines[i]));
sel.appendChild(opt);
}
sel.selectedIndex = 0;
}, "text");
});
- --CF 12:17, 5. Jul. 2010 (CEST)
