Benutzer Diskussion:CF

aus Stargate Wiki, dem deutschsprachigen Stargate-Lexikon
Zur Navigation springen Zur Suche springen
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)

^Hilfe bei Vorlage

Hey CF, wie du vielleicht mitbekommen hast (siehe diese Diskussion), wollte ich eine Vorlage: Infobox Ort erstellen, da diese meiner Meinung nach auf jeden Fall benötigt wird. Jetzt hätte ich schon einen kleinen Entwurf, doch ich kenn mich da mit der Programmierung lang nicht so gut aus wie du, weshalb ich dich da um Hilfe bitten wollte.

Ich hatte also vor, eine Art Universalvorlage für Orte (bis auf Planeten, für die bereits eine Vorlage existiert) zu kreieren. Dabei kann das ein unbestimmer Ort (wie der Antiker-Außenposten in der Antarktis), aber auch eine Stadt (wie Colorado Springs) oder ein Bundesstaat (wie Colorado) sein. Der Ort kann genauso gut auf der Erde sein, wie auf jedem anderen Planeten. Deshalb sollen mehrere Parameter zur Verfügung stehen, die jedoch natürlich nicht alle benutzt werden müssen. Ein paar Vorschläge wären:


{{Infobox Ort
| Register =
| Bild =
| Name =
| Bewohner =
| Staat =
| Land = <!-- usa/ca/sco/d/... -->
| Kontinent =
| Planet =
| Galaxie = <!-- m/p/o/i -->
| Zustand = <!--zerstört, unbewohnt, verlassen, ...-->
| Erster Auftritt = {{Ep|SG*|*x**}}
| Toradresse = {{Toradresse||||||}}
}}


Das meiste is zwar klar, aber hier trotzdem:
falls benötigt
normalerweise vorhanden
halt {{PAGENAME}} oder leer
Spezies und/oder Volk, wenn bekannt durch <br /> getrennt
falls es auf der Erde (in den USA) liegt
falls bekannt überall möglich
außer es befindet sich nicht auf einem Planeten
auf jedem beliebigen Planeten möglich
falls es nicht zwischen zwei Galaxien liegt
falls bekannt

falls bekannt

Doch da gibts wahrscheinlich noch viel mehr, was man beachten, einbinden und sonst was erledigen muss. Ich würde mich freuen, wenn du das ein wenig ausbauen könntest, vielleicht helfen dir ja auch die Vorlagen für die anderen Infoboxen.

lg --Claudi-fee 15:38, 24. Jul. 2010 (CEST)

~> Vorlage:Infobox Ort
Ich hatte ehrlichgesagt schon seit längerem die schon fertiggestellte Vorlage in nem Tab auf, nur war ich bis jetzt nicht dazugekommen den Beschreibungstext zu schreiben . Ich habe jetzt von dir noch die zwei Punkte Kontinent und Toradresse übernommen, willst du noch etwas daran ändern?--CF 01:30, 25. Jul. 2010 (CEST)
Erstmal nicht, und vielen Dank für die Vorlage. --Claudi-fee 14:45, 29. Jul. 2010 (CEST)
Oder doch, mir ist gerade aufgefallen, dass man die Vorlage unten im Editor nicht aufrufen kann. Kannst du das noch machen, oder können das nur Admins? lg --Claudi-fee 15:25, 29. Jul. 2010 (CEST)
--Philipp Bürokrat · Disk ·  ] 20:56, 29. Jul. 2010 (CEST)