Benutzer Diskussion:CF: Unterschied zwischen den Versionen

aus Stargate Wiki, dem deutschsprachigen Stargate-Lexikon
Zur Navigation springen Zur Suche springen
CF (Diskussion | Beiträge)
Zeile 138: Zeile 138:
:::Mit Safari und Chrome muss ich mir das nochmal anschauen, dass es in FF nicht richtig funktioniert liegt an MediaWiki. Im Quelltext steht <code>var lines = text.split("\\n");</code>, in der Ausgabe macht er daraus <code>var lines = text.split("n");</code>, also fehlt das „\\“. Wenn du also den Quelltext direkt kopierst sollte es klappen.--[[Benutzer:CF|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 <code>var lines = text.split("\\n");</code>, in der Ausgabe macht er daraus <code>var lines = text.split("n");</code>, also fehlt das „\\“. Wenn du also den Quelltext direkt kopierst sollte es klappen.--[[Benutzer:CF|CF]] 00:11, 6. Jul. 2010 (CEST)
::::Ah, sehr gut, in FF funktioniert es.--{{Benutzer:Philipp/sig}} 11:23, 6. Jul. 2010 (CEST)
::::Ah, sehr gut, in FF funktioniert es.--{{Benutzer:Philipp/sig}} 11:23, 6. Jul. 2010 (CEST)
:::::Oh, das war ein kleiner Fehler von mir [[Bild:Smile.gif]]. Jetzt funktioniert es bei mir auch mit Safari und Chrome.
<pre>
addOnloadHook(function()
{
  if (wgAction != "edit" && wgAction != "submit") return;
  var label = document.createElement("label");
  label.htmlFor = "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");
});
</pre>
:::::--[[Benutzer:CF|CF]] 10:39, 8. Jul. 2010 (CEST)

Version vom 8. Juli 2010, 09:39 Uhr

Benutzerdiskussion von CF
alte Versionen:
  • Archiv (8. März 2009 bis 8. Juni 2011)

^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 daraus var lines = text.split("n");, also fehlt das „\\“. Wenn du also den Quelltext direkt kopierst sollte es klappen.--CF 00:11, 6. Jul. 2010 (CEST)
Ah, sehr gut, in FF funktioniert es.--Philipp Bürokrat · Disk ·  ] 11:23, 6. Jul. 2010 (CEST)
Oh, das war ein kleiner Fehler von mir . Jetzt funktioniert es bei mir auch mit Safari und Chrome.
addOnloadHook(function()
{
  if (wgAction != "edit" && wgAction != "submit") return;
  var label = document.createElement("label");
  label.htmlFor = "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 10:39, 8. Jul. 2010 (CEST)