1. Nachrichten
  2. Forum
    1. Unerledigte Themen
    2. Forenregeln
  3. Spenden
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. camp-firefox.de
  2. Mira_Belle

Beiträge von Mira_Belle

  • Im ExtraConfigMenu.uc.js werden die Scripte nicht mehr angezeigt.

    • Mira_Belle
    • 21. Juli 2023 um 13:39
    Zitat von omar1979

    Aber welche Dateien soll ich wieder im aktuellen Profil-Ordner kopieren, damit alles wieder beim Alten ist?

    Von wo bitte hast Du was in Deinen Profilordner reinkopiert?

    Was hast Du vorher am, oder im Profilordner gemacht?

  • Im ExtraConfigMenu.uc.js werden die Scripte nicht mehr angezeigt.

    • Mira_Belle
    • 21. Juli 2023 um 13:32
    Zitat von FuchsFan

    Wenn Du weitere Details dazu benötigst, dann sag bitte an


    Vielen Dank auch,

    und das RestoreScript?

  • Im ExtraConfigMenu.uc.js werden die Scripte nicht mehr angezeigt.

    • Mira_Belle
    • 21. Juli 2023 um 12:47

    FuchsFan

    Was sind das denn für interessante PowerShell - Skripts?

    Würdest Du die zur Verfügung stellen?

  • Button um weiteres Profil zu öffnen

    • Mira_Belle
    • 21. Juli 2023 um 12:04
    Zitat von Sören Hentzschel

    Das war ja nun aber zu erwarten. Ein Programm zu öffnen ist etwas völlig anderes als eine URL in Firefox zu öffnen. Dass eine Funktion, die das eine macht, nicht gleichzeitig auch das andere macht, ist naheliegend. In der von Horstmann verlinkten Datei dürfte eh schon die relevante Logik stehen, um Firefox mit einem bestimmten Profil zu öffnen. Da kann man sich bestimmt bedienen.

    Jep, bin ich nach einigen Überlegungen auch drauf gekommen.

    Gehe gerade der von Horstmann gelegten Spur nach!

    Der Code, auf den verwiesen wird, lautet so:

    JavaScript
    Die Sache ist nur, es ist völlig egal von welchem Profil ich diesen Button "verfolge", 
      if (!profileData.isInUse) {
        let runButton = document.createElement("button");
        document.l10n.setAttributes(runButton, "profiles-launch-profile");
        runButton.onclick = function () {
          openProfile(profileData.profile);
        };
        div.appendChild(runButton);
      }

    Es wird immer auf diese Zeilen verwiesen.

    Wie merkt die Anweisung, welche Profilinstanz geöffnet werden muss? :/

    Ich glaube, es hängt mit diesem div  zusammen.


    Mh, ich glaube, ich bin auf der richtigen Spur.

    Hier mal der ganze Code.

    JavaScript
    function display(profileData) {
      let parent = document.getElementById("profiles");
    
      let div = document.createElement("div");
      parent.appendChild(div);
    
      let name = document.createElement("h2");
    
      div.appendChild(name);
      document.l10n.setAttributes(name, "profiles-name", {
        name: profileData.profile.name,
      });
    
      if (profileData.isCurrentProfile) {
        let currentProfile = document.createElement("h3");
        document.l10n.setAttributes(currentProfile, "profiles-current-profile");
        div.appendChild(currentProfile);
      } else if (profileData.isInUse) {
        let currentProfile = document.createElement("h3");
        document.l10n.setAttributes(currentProfile, "profiles-in-use-profile");
        div.appendChild(currentProfile);
      }
    
      let table = document.createElement("table");
      div.appendChild(table);
    
      let tbody = document.createElement("tbody");
      table.appendChild(tbody);
    
      function createItem(title, value, dir = false) {
        let tr = document.createElement("tr");
        tbody.appendChild(tr);
    
        let th = document.createElement("th");
        th.setAttribute("class", "column");
        document.l10n.setAttributes(th, title);
        tr.appendChild(th);
    
        let td = document.createElement("td");
        tr.appendChild(td);
    
        if (dir) {
          td.appendChild(document.createTextNode(value.path));
    
          if (value.exists()) {
            let button = document.createElement("button");
            button.setAttribute("class", "opendir");
            document.l10n.setAttributes(button, "profiles-opendir");
    
            td.appendChild(button);
    
            button.addEventListener("click", function (e) {
              value.reveal();
            });
          }
        } else {
          document.l10n.setAttributes(td, value);
        }
      }
    
      createItem(
        "profiles-is-default",
        profileData.isDefault ? "profiles-yes" : "profiles-no"
      );
    
      createItem("profiles-rootdir", profileData.profile.rootDir, true);
    
      if (profileData.profile.localDir.path != profileData.profile.rootDir.path) {
        createItem("profiles-localdir", profileData.profile.localDir, true);
      }
    
      let renameButton = document.createElement("button");
      document.l10n.setAttributes(renameButton, "profiles-rename");
      renameButton.onclick = function () {
        renameProfile(profileData.profile);
      };
      div.appendChild(renameButton);
    
      if (!profileData.isInUse) {
        let removeButton = document.createElement("button");
        document.l10n.setAttributes(removeButton, "profiles-remove");
        removeButton.onclick = function () {
          removeProfile(profileData.profile);
        };
    
        div.appendChild(removeButton);
      }
    
      if (!profileData.isDefault) {
        let defaultButton = document.createElement("button");
        document.l10n.setAttributes(defaultButton, "profiles-set-as-default");
        defaultButton.onclick = function () {
          defaultProfile(profileData.profile);
        };
        div.appendChild(defaultButton);
      }
    
      if (!profileData.isInUse) {
        let runButton = document.createElement("button");
        document.l10n.setAttributes(runButton, "profiles-launch-profile");
        runButton.onclick = function () {
          openProfile(profileData.profile);
        };
        div.appendChild(runButton);
      }
    
      let sep = document.createElement("hr");
      div.appendChild(sep);
    }
    Alles anzeigen

    Die Zeilen 1 bis 12 scheinen mir wichtig zu sein.


    Ah, profileData ist die Variable, die den Profilnamen "speichert".

    Oh, nee, stop

    Ist gar keine Variable!

  • Button um weiteres Profil zu öffnen

    • Mira_Belle
    • 21. Juli 2023 um 11:16

    Oh menno,

    Zeile 25 so

    onclick: 'if (event.button == 0) { \ openTrustedLinkIn("C:\Program Files (x86)\Mozilla Firefox\firefox.exe" -no-remote -P "nfl82a72.Standard-Benutzer", "tab");\ }; '

    abgeändert funktioniert nicht.

    "nfl82a72.Standard-Benutzer" wäre der Profilordnername gewesen!

    Der Name des Profils lautet "Standard-Benutzer", aber auch so abgeändert, also ohne die Zahlenkolonne davor,

    funktioniert auch nicht.

    :cursing:

  • Button um weiteres Profil zu öffnen

    • Mira_Belle
    • 21. Juli 2023 um 10:16

    milupo & Horstmann

    Ich bin DIE Heldin des Tages!

    Ich habe so ein Skript, um die Page about:profiles aufzurufen, schon die ganze Zeit auf der Halde.

    Habe es nur nicht genutzt.

    Oh Herr ...

    Hier:

    JavaScript
    // JavaScript Document
    // QuickLinkButton-cf.uc.js
    // Source file https://www.camp-firefox.de/forum/thema/135613-quicklink-button/?postID=1213791#post1213791
    (function() {
        if (location.href !== AppConstants.BROWSER_CHROME_URL) return;    
        try {
           CustomizableUI.createWidget({
              id: 'aboutprofiles-button',
              type: 'custom',
              defaultArea: CustomizableUI.AREA_NAVBAR,
              onBuild: function(aDocument) {        
                 let toolbaritem = aDocument.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'toolbarbutton');
                 let currentProfileDirectory = Services.dirsvc.get("ProfD", Ci.nsIFile).path.replace(/\\/g, "/");  // Pfadangabe zum Profilordner
                 let buttonicon = "users-rays.svg"  // Name & Dateiendung des anzuzeigenden Symbols
                 let props = {
                    id: 'aboutprofiles-button',
                    class: 'toolbarbutton-1 chromeclass-toolbar-additional',
                    removable: 'true',
                    label: 'Quicklink: about:profile',
                    accesskey: '',
                    tooltiptext: 'Quicklink:\nabout:profiles',
                    style: 'list-style-image: url(chrome://browser/skin/fxa/avatar-empty.svg);',
     //               style: 'list-style-image: url("' + ("file:" + currentProfileDirectory + "/chrome/icons/" + buttonicon) +'");',
     //               onclick: "openTrustedLinkIn('about:about', 'tab')"
                    onclick: 'if (event.button == 0) { \ openTrustedLinkIn("about:profiles", "tab");\ }; '
     
                 };            
                 for (var p in props)
                 toolbaritem.setAttribute(p, props[p]);            
                 return toolbaritem;
              }      
           });
        } catch(e) { };
     }) ();
    Alles anzeigen

    Ich würde es gerne so abgeändert haben, dass ich direkt damit mein Testprofil gestartet wird.

  • Button um weiteres Profil zu öffnen

    • Mira_Belle
    • 21. Juli 2023 um 00:14
    Zitat von geldhuegel

    Mira_Belle

    Mein Assistenzsystem ruft mir gerade zu "Gute Nacht" und ich denke ans schlafen. Funktioniert bestens.

    Glückwunsch. :thumbup:

  • Im ExtraConfigMenu.uc.js werden die Scripte nicht mehr angezeigt.

    • Mira_Belle
    • 21. Juli 2023 um 00:12
    Zitat von 2002Andreas
    Zitat von Mira_Belle

    Am Skript selber, bzw. dessen Code musst Du doch gar nichts ändern!

    :/

    Zitat von FuchsFan

    Du bist also gezwungen es für Deine Verhältnisse anzupassen, das betrifft die Ordner selbst, die einzelnen Scripte, die CSS-Dateien, usw.

    Z.B.:

    Ab Zeile 37 - > die eigenen Bezeichnungen eintragen.

    Ab Zeile 63 - > die eigenen Skripte eintragen.

    Und dann noch die div. CSS Dateien, usw.

    Alles anzeigen

    Oh, ich, ich, sorry.

    Da habe ich mich aber total verwechselt, natürlich habe ich das so gemeint. :saint:

  • Button um weiteres Profil zu öffnen

    • Mira_Belle
    • 21. Juli 2023 um 00:06
    Zitat von milupo

    Probiere das mal, das ist das abgewandelte about:config-Skript:

    JavaScript
    //      about:profiles
    //     Unicode変換前  → tooltiptext: 'About:Profiles anzeigen',
            CustomizableUI.createWidget({
                id: 'aboutprofiles-button',
                type: 'custom',
                onBuild: function(aDocument) {
                    let toolbaritem = aDocument.createXULElement('toolbarbutton');
                    let props = {
                        id: 'aboutprofiles-button',
                        class: 'toolbarbutton-1 chromeclass-toolbar-additional',
                        label: 'About:Profiles',
                        tooltiptext: 'About:Profiles öffnen',
                        
                    style: 'list-style-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAABOVJREFUeNrElm1MW1UYx597b2/pgMh4aSkMeakNMBacU7MYcLwkZnMB3fiwGL/MRaPGxLghTmY3dUzajJh9UKNBWTAxIQMW4Is6/TA2YRCziXFKKbFlvPYNyltb+jJ6e33O3W0sCzCBu3iTJ5yW0/P7P+c8z/8eiud5oCgKJHzos+f0NTRNn+A4Ll2pVILT6QSCCHNcpz8Q+ODCpw1mnMeTyZTEAth6Q8NEujpNXVq+D5QpKRBZPxgMgtk8Ale7r4HVOpnf+NWXfxMRMgkzJ/DJvNzc1JKSZ+H2n4PQ1/cr4E4IoUpVQeGuAsjISIemi83DOF+BEZRKAP3+Kd2r6Wo1wouh+3oPcKEQsCwLbrebZAxDpiG41t1NNh0Yhia/iZVSQExcXHxdaXkJZm4U4DTNIIiBxcVFOHf244M4Zzlq/nxkIJUABZ51qipFKWw7AdM0BTKZDMTyGo2GimKWpBTAkmJzezxAiKToiAi5nI3OeHrVs5OqAokAGYMZ4/geXCbUAMD6HSaZAC501z46egdU2PcsK0MRGDIG+HB43d9JdQTc0pLPAhSdlp2dBWaLRTh/GRZiZlYm1JysdZJWFIwHj4eMzxvqY/DjXSkEMPW6U988V/HivrxcLfyB/U+OQ6FQCCI0Gg0U7NwpfGZZBuw2B3R0dd0R23BLAlhV3ZUpmudUIS0FTz1eADdvG8Hv92H4QRETA0nbtwtihAJFPzAND4PJZEI/uFoTWWSzVszmGH4e11eVpfVOeeHmuB0eXbbDu9owTDhd0NvXb01ISEhCs98WFxsLHtId+Ljdi/1NXzfW4nAcw0l2YDMC2CzDT2P1h0rTf3cGwOYNwHKYhoGRUahgLBA2Xp9pbLr4MqkLUuSpanW80+EgPR/CWBTBcwROmmcjAqiUtxs1yuw8i+75Z2DA6QebJwChMA/LPAUBFGEy/QZTH1UW49wpDL/YZZT45iOCguL3oY12AZX01heP5eQXmvUvFMEPlvl/4bgsh8sveOYgSMmJ4Vgx7FHWGxGwaR+gkt78PEdT8KT5k8oi+N5M4P4oOAUu9xxYJ8yumQ/3HxC3Odr3+a34AJ1c23p0b37ut++U74EfMXO7l8BhJXzS4rLVHT4kbv3SRgpqvRqgk0+2vFK+Z3fzifJd0DY4Bw4suBC/Em5zTIL1zMFi8YXjui/7Bz5r7QCd+F7L0bIndjcfR3irCOdWgc+3NxwR22rD8LUEyBJPd7W/UfJ0VUVhBmY+i/Dg6vC28y/5/vrl1mbhqwlgEnWd7dX7i6pKtCpoM86Ccy34Jf0Rn/HGrYihbNZOZSsy13Verj5QfJjALxP40urw4FC/HuEDIjz4oEr/LwIYpa6j6bWyvWvA8Ubhdd+DG28YXJf030kBj/aBbTFx8ccqC3fcB+eFv95AEOHjEBzs1YtwYjSBrcKjd0ChVSaC04cr45mjxwhGQ7adwMemzBCac/S4Wg0tONcm9npYiotERADt8HjxBgOCyRABK+Cz9h77hWPHcZ5DSnj0EfCzswtjI9MzoJDLcXUG3D4fjAuZ23sRXi26nEdKeLQTJuBYqz7d0UkpYjPxRi24Izc9ecX+2etn8H8T4s2WA4mfiAByfU3G2IHxiLgzyyKUFNxC9Cv0YQgQLhriPU0uvkLDYqX7H0bmK+7z/+fzjwADAKjckmpp+9qUAAAAAElFTkSuQmCC)',
                        onclick: 'if (event.button == 0) { \
                                      openTrustedLinkIn("about:profiles", "tab"); \
                                  }; '
                    };
                    for (let p in props)
                        toolbaritem.setAttribute(p, props[p]);
                    return toolbaritem;
                }
            });
    Alles anzeigen

    Hinter dem Base64-Code verbirgt sich noch das about:config-Symbol, ein Schraubenschlüssel oder was das ist. Kannst du ja durch ein anderes Symbol ersetzen. Ich musste das Symbol erst einmal aus dem Anpassen-Fenster holen.

    Vielen lieben Dank.

    Mal schauen, ob ich daraus noch etwas anderes machen kann.

    Denn ich würde ja gerne direkt das Testprofil parallel starten können.

  • Button um weiteres Profil zu öffnen

    • Mira_Belle
    • 20. Juli 2023 um 23:54
    Zitat von geldhuegel

    Der Gipfel der Faulheit würde erreicht werden, wenn jetzt noch der Klick auf den Button "Profil zusätzlich ausführen" durch das Skript ausgeführt würde.

    :)

    Nein, erst wenn ein Assistenzsystem auf Zuruf Aktionen ausführt, besser noch, wenn man nur daran denkt!

  • Im ExtraConfigMenu.uc.js werden die Scripte nicht mehr angezeigt.

    • Mira_Belle
    • 20. Juli 2023 um 22:23
    Zitat von omar1979
    Zitat von FuchsFan

    Wenn ich das gewusst hätte, dass Du so ängstlich reagierst, dann wäre es eine Kleinigkeit gewesen, 800 Zeilen raus zu nehmen. ;)

    Aber Du bist doch sonst nicht so ängstlich eingestellt, wenn es um Anpassungen geht. :)

    Du brauchst es ja nicht nehmen, Dich zwingt doch niemand dazu.

    Das Problem ist, ich habe null Ahnung von JavaScript und CSS. Ich weiss nicht, ob man in deinem Script auch grosse Änderungen machen muss oder nicht. :)

    Am Skript selber, bzw. dessen Code musst Du doch gar nichts ändern!

    Wo nach Du nur schauen musst ist der CSS-Teil, den musst Du Dir anschauen

    und vergleichen, ob Du eben jene Datei auch hast, und ob Du sie aufrufen möchtest.

    Und dann musst Du nur den Pfad abgleichen und gegebenenfalls Deinem angleichen.

  • Button um weiteres Profil zu öffnen

    • Mira_Belle
    • 20. Juli 2023 um 22:14

    Ja, das ist der Weg!

    Aber das möchte ich einfacher!

    Ein Klick auf einen Button.

    Eben ein Skript, mit dem ich anstellen kann, was halt meine Möglichkeiten so hergeben.

  • Nur die Anzeige der Ordner/Lesezeichenanzahl in einer anderen Farbe darstellen

    • Mira_Belle
    • 20. Juli 2023 um 14:53
    Zitat von Horstmann

    Sicher?

    Der von ihm gepostete Code funktioniert nämlich anscheinend ungefähr wie in der Darstellung - du hast ihn doch bestimmt probiert? ;)

    Schäm, nein, hab ich nicht.

    Dann ging es ihm doch wohl nur noch darum, das Systememoji "🗁" durch eine richtige Grafik zu ersetzen.

    Aber auch da bin ich raus, zumal ich jetzt eine neue Baustelle habe.

  • Nur die Anzeige der Ordner/Lesezeichenanzahl in einer anderen Farbe darstellen

    • Mira_Belle
    • 20. Juli 2023 um 14:04
    Zitat von Horstmann

    Mitleser hat ja seine Lösung schon einmal hinbekommen, vielleicht hat er selber eine Idee.

    Ne ne, hat er nicht, das ist nur eine erstellte Grafik zur Veranschaulichung, wie er es sich vorstellt.

  • Button um weiteres Profil zu öffnen

    • Mira_Belle
    • 20. Juli 2023 um 14:01

    Ich habe mal wieder eine etwas spezielle Idee.

    Hin und wieder teste ich in einem anderen Profil, welches ich extra dafür angelegt habe, Skripte und/oder CSS-Code.

    Jedoch musste ich dafür jedes Mal meinen Firefox beenden und mit diesem Testprofil neu starten.

    Durch einen anderen Thread bin ich darauf gestoßen, dass man ja auch zwei Instanzen mit unterschiedlichem Profil starten, bzw. laufen lassen kann.

    Nun habe ich getestet, ob ich in den verschiedenen Profilen auch ein Restart inkl. Speicherlöschung machen kann. Es geht.

    So, nun meine Frage, hat jemand schon so ein Skript in Benutzung?

    Oder muss es von Grund auf erst erstellt werden?

  • Nervige "Du musst Neustarten"-Sperre abstellen, ohne Updates zu deaktivieren

    • Mira_Belle
    • 20. Juli 2023 um 13:39
    Zitat von 2002Andreas

    War ja auch nur als Beispiel gedacht. ;)

    Ich weiß, ich kann es mir nur halt nicht vorstellen, aber die Menschen sind halt alle im Verhalten anders,

    und genau hier in diesem Thread kann man es ja vortrefflich "beobachten".

  • Nervige "Du musst Neustarten"-Sperre abstellen, ohne Updates zu deaktivieren

    • Mira_Belle
    • 20. Juli 2023 um 13:32
    Zitat von 2002Andreas
    Zitat von Mira_Belle

    aber nicht um damit normal und produktiv zu arbeiten.

    Kommt drauf an.

    Du könntest in dem neuen Profil z.B. andere Lesezeichen haben.

    Oder andere Erweiterungen..Skripte..Codes.

    Ok, ist jetzt nur mein Empfinden, aber normal ist das nicht. 8o

    Aber soll ja nicht heißen, dass das andere User nicht so handhaben.

    Und beruflich?

    Wäre es da nicht sinnvoller, an ganz anderer Stelle die Systeme zu trennen?

    Benutzerkonten des BS, oder eben halt eine zweite Installation mit entsprechendem anderem Profil?

    Aber gut, jeder so wie er/sie mag.

    Für kurze Tests finde ich das auf jeden Fall gut und werde es mal ausprobieren.

  • Nervige "Du musst Neustarten"-Sperre abstellen, ohne Updates zu deaktivieren

    • Mira_Belle
    • 20. Juli 2023 um 13:18
    Zitat von 2002Andreas
    Zitat von Mira_Belle

    Dass die gleichzeitige Nutzung von zwei

    Unter about:profiles ein neues Profil erstellen.

    Und dann einfach unten auf: Profil zusätzlich ausführen klicken.

    Schon hast du 2 Profile gleichzeitig geöffnet.

    Alles anzeigen

    Danke für die Erklärung.

    Aber dieses Späßchen ist ja nicht das normale Vorgehen eines normalen Nutzers!

    Das ist für Tests gut geeignet, aber nicht um damit normal und produktiv zu arbeiten.

    Aber gut, dass ich das jetzt weiß, denn manchmal, wenn ich ein neues Skript oder neuen CSS-Code testen möchte,

    habe ich bisher immer den Firefox beendet und mit dem Testprofil neu gestartet, um dann nach den Tests,

    wieder zu meinem Standardprofil zu wechseln, um dann z.B. hier das Ergebnis zu verkünden.

  • Nur die Anzeige der Ordner/Lesezeichenanzahl in einer anderen Farbe darstellen

    • Mira_Belle
    • 20. Juli 2023 um 13:08
    Zitat von Horstmann

    ...

    Den Text zu verstecken bei diesen Vorgaben geht mit seinem Code if (menuCount == 0) {menuCount ='\xa0';}; und if (menuitemCount == 0) {menuitemCount ='\xa0';};, zugefügt zu meinem.

    Dann müsste müsste er "nur" noch das Icon wegbekommen. :/

    Oh, cool. :thumbup:

    Wenn es das ' 🗁 ' aus seinem Code ist, sollte das auch so einfach gehen.

    Ich weiß nur gerade nicht, an welcher Stelle es eingefügt werden muss.

    Entferne doch mal die Symbole, bzw, den Code für diese und dann füge in der Zeile für das Anzeigen den "Buchstaben" 🗁 ein.

    Wenn es aber durch eine Grafik ersetzt werden soll, geht es nur über das Script, und da bin ich definitiv überfordert.

    Mach das aber nur, wenn Du auch wirklich Lust darauf hast.

  • In diesem Script NACH dem Text "Anzahl Ordner / Anzahl Links." bzw. "Anzahl Ordner / Anzahl Link(s) -> Link(s) in Tab(s) öffnen" einen Separator setzen.

    • Mira_Belle
    • 20. Juli 2023 um 12:56
    Zitat von BrokenHeart
    Zitat von Mira_Belle

    Äh, ich habe BrokenHard zitiert.

    Und mein Kommentar bezieht sich auch nur auf seinen Kommentar.

    Achtung! => <X =O ...

    Hab halt 'nen empfindlichen Magen ^^

    Nein im Ernst, du hast schon viele gute Ideen gehabt und die auch so umgesetzt, dass wirklich sehr brauchbarer Code dabei herausgekommen ist :). Aber die Zeile in #34 ist wirklich in jeder Beziehung Mist. Du musst dann bei jeder zusätzlichen Verschachtelungsebene neuen Code anfügen, oder zur Sicherheit gleich 50x menu > menupopup >... schreiben. Vor allem wenn man bedenkt, dass es auch viel einfacher geht.

    Also nichts für ungut, mir ist ja nur schlecht geworden und ich habe nicht k....n müssen, sonst hätte ich auch ein anderes Smiley benutzt. ;)

    Alles anzeigen

    Hey, war doch nur Spaß,

    ich bin halt leider einfach nicht auf die einfache Lösung gekommen.

    Aber dafür haben wir doch Dich. ;)

Unterstütze uns!

Jährlich (2025)

105,8 %

105,8% (687,41 von 650 EUR)

Jetzt spenden
  1. Kontakt
  2. Datenschutz
  3. Impressum
Community-Software: WoltLab Suite™
Mastodon