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)
- Danke für deine Hilfe.
Leider funktioniert der Code nach wie vor nicht.
Einerseits erkenne ich nur in meinem Firefox-Browser einer Veränderung, Safari und Chrome zeigen alles wie gehabt (also nichts) an. Andererseits ist die Dropdownliste (Firefox) kaputt. Die Begründungen werden nicht richtig angezeigt und lassen sich nicht auswählen (Bild). Grüße--Philipp [ Bürokrat · Disk ·
] 16:05, 5. Jul. 2010 (CEST)
- Mit Safari und Chrome muss ich mir das nochmal anschauen, dass es in FF nicht richtig funktioniert liegt an MediaWiki. Im Quelltext steht
var lines = text.split("\\n");, in der Ausgabe macht er darausvar lines = text.split("n");, also fehlt das „\\“. Wenn du also den Quelltext direkt kopierst sollte es klappen.--CF 00:11, 6. Jul. 2010 (CEST)
- Mit Safari und Chrome muss ich mir das nochmal anschauen, dass es in FF nicht richtig funktioniert liegt an MediaWiki. Im Quelltext steht
- Danke für deine Hilfe.
