Beiträge von ProtippSchorsch

    Hey,


    ich finde es cool, dass du an einer Würfelfunktion gewerkelt hast :D Ich habe die einfache Version meiner Würfelfunktion mal hier im Forum gepostet. Da mal nachgefragt wurde, ob ich meine umfangreichere Version mal posten könnte, mache ich es an dieser Stelle mit leichter verspätung mal. Vielleicht dient dir das auch als eine kleine Inspirationsquelle @orkensplter ;)



    Meine Würfelfunktion kann leider nur mit 6-seitigen Würfeln umgehen, dafür werden die Ergebnisse hübsch angezeigt (finde ich zumindest :D ) und bei besonders guten (oder schlechten) Leistungen gibt es einen sinnlosen Spruch gratis dazu. Derzeit betreibe ich keinen Chat und habe daher lange nichts mehr für den Chat programmiert. Trotzdem bin ich für Verbesserungsvorschläge offen :whistling:

    Nein, ich bin nicht Tim im Spiderman-Kostüm mit einem lustigen Schnurbart, aber ich kann die dir deine Fragen beantworten:


    1) Den gibt es nicht mehr. In der Textzeile steht nicht umsonst "zum Senden Enter drücken" ;)


    2) Das kannst du mit Stylesheets bewerkstelligen. Ich habe hierzu mal ein Tutorial hier im Forum gemacht:


    Bestimmte Nachrichtentypen formatieren


    Ich hoffe, ich konnte dir weiterhelfen :thumbup:

    Es gibt schon einen Weg, den kompletten Chat bei jedem User zu leeren:


    How To: Clear Screen Funktion


    Du musst nur im Hinterkopf behalten, was @Tim geschrieben hat: Schon vor dem Löschen kann theoretisch jeder die zu löschende Nachricht gesehen haben und zudem kommt es nicht oft gut an, wenn man den kompletten Chatverlauf bei allen Usern löscht. Auch diejenigen, die nichts mit der zu löschende Nachricht zu tun haben.

    Hiho,


    hier ist meine einfache Version der /dice-Funktion:



    die Datei speicherst du als DiceCommand.class.php einfach im folgenden Verzeichnis ab: chat\lib\system\command\commands Dann dürftet ihr würfeln können :D Du kannst die Datei selbstverständlich auch anpassen, wie du willst.

    Gibt es einen besonderen Grund, warum dieses Feature nun für Tims Chat 4 angepeilt ist? Ich würde es sehr begrüßen, wenn Floodpostings schon in 3.1 automatisch geblockt werden, wenn der Release von 4.0 noch einige Jahre hin ist :(

    Hi,


    es ist etwas Schreckliches in meinem Chat passiert. Ein User hatte die Desktopbenachrichtigungen an und ein anderer User hat eine Nachricht in Spoilertags gepostet. Unglücklicherweise wurde der User mit den Desktopbenachrichtigungen volle Kanne gespoilert, da in den Benachrichtigungen derzeit nur stumpf die eingegangene Nachricht samt BB-Codes angezeigt wird. Ich konnte dem betroffenden User Gott sei Dank beruhigen.


    Ist es irgendwie möglich, die eingehenden Nachrichten mit dem SimpleParser parsen zu lassen, ehe die Nachricht auf dem Desktop angezeigt wird? Nachrichten mit anderen BB-Codes würden dann auch in dem kleinen Benachrichtigungskästchen schöner aussehen.


    ~Schorsch

    Hi,


    ich habe bei mir im Chat einen /dice Befehl eingebaut, der die gewürfelte Zahl mit einer /me-Nachricht angezeigt. Um das Cheaten vorzubeugen (würfeln is serious business) würde ich gerne vor jeder ME-Nachricht, die mit /dice erzeugt wurden, noch ein Icon davor setzen. Von daher die Frage: Gibt es eine Möglichkeit, wie ich das einfach umsetzen kann? Könnte ich zum Beispiel Nachrichten, die ich mit dem Kommando erzeugt wurden, noch mit CSS Klassen ergänzen?


    ~Schorsch

    Hiho,


    den imageScript.js müsstest du tatsächlich selber erstellen und in chat/js Verzeichnis packen ;) In dem Script steht dann einfach, was der Chat machen soll, wenn auf dein Image Button gedrückt wird. Den Quellcode dazu habe ich ja gepostet :D Wenn du den Script erstellt hast drüfte dann alles Klappen. Dann kannst du dir auf di Schulter klopfen :thumbup:


    Was die Button-Ideen angehen: Ich habe in meinem Chat einen BB-Code Button eingefügt, womit man bestimmte BB-Codes einfügen kann: BB-Code Dropdown Menü
    (hier wird aber noch nicht berücksichtigt, ob der User die Codes verwenden darf oder nicht)


    Wenn du Interesse hast, kann ich dir das Paket ja geben. Ich müsste es nur noch etwas anpassen, da in dem Paket noch weiteres, lustiges Zeugs drin ist :whistling: Es kann aber sein, dass es etwas dauern wird (die Uni raubt gerne meine Zeit. Sie findet das schon seit einigen Semestern ganz amüsant ;( ).

    Jawoll, danke :) Hat geholfen :thumbup:


    Es hat sich nur ein kleiner Fehler bei dir eingeschlichten. Das Textfeld im Chat hat die ID #timsChatInput. Nur für den Fall, falls es andere User hier auch ausprobieren wollen und sich nicht wundern, warum der Cursor nicht versetzt wird.

    Hi,


    eine Frage: gibt eine Möglichkeit, wie ich die Position des Cursors im Textfeld beeinflussen kann, wenn ich zum Beispiel über einen Button einen Text eingefügt habe? Für meinen BB-Code Plugin (den ich auch im Vorschlägen-Bereich angeschnitten habe) wäre es zum Beispiel auch praktisch, wenn der Cursor zwischen den BB-Code befinden würde, sobald man eine der BB-Codes eingefügt hat.


    ~Schorsch

    Hi,


    in meinem Chat werden hin und wieder die BB-Codes verwendet. Da das manuelle Eintippen der Codes für einige User eine psychische Belastung ist, habe ich an einem Plugin gewerkelt, der eine kompatke Liste der BB-Codes zur Verfügung stellt, die dann einfach in das Textfeld eingefügt werden können:



    Ich könnte mir vorstellen, dass sich sowas in den Standardfunktionen auch gut machen würde. Die Liste könnte dann standardmäßig alle BB-Codes auflisten, die sie im Chat verwenden dürfen :thumbup:


    Was haltet ihr von dieser Idee?


    ~Schorsch

    Hast du Erfahrungen mit Pluginentwicklung? Du könntest nämlich dein gewünschtes Feature wunderschön als Plugin nachrüsten, damit du nicht extra an dem Originaltemplate rumfummeln musst.


    Du kannst mit Hilfe des buttons Events im chat.tpl weitere Buttons hinzufügen. Das sieht ungefähr so aus:



    in dem __imageButton.tpl fügt du dann ganz normal den Button ein:


    Code
    <li id="imageButton">
        <a class="button jsTooltip" title="Bild einfuegen">
            <span class="icon icon16 icon-comments"></span>
            <span class="invisible">Bild einf&uuml;gen</span>
        </a>
    </li>


    Nun musst du nur noch dem Button eine Funktion geben. Das machen wir mir JavaScript. Ergänze den Templatelistener damit:


    Code
    <templatelistener name="imageScriptInclude">
                <environment>user</environment>
                <templatename>javascriptInclude</templatename>
                <eventname>javascript</eventname>
                <templatecode><![CDATA[{include file='__imageJavascript' application='chat'}]]></templatecode>
            </templatelistener>


    das dazugehörige Template


    Code
    <script data-relocate="true" src="{@$__wcf->getPath('chat')}js/imageJavascript.js"></script>


    in dem imageJavascript.js muss nun die Funktion rein, womit dem Klicken des Buttons die IMG-Tags auftauchen. Wir machen dazu von der insertText Funktion zunutze:


    Code
    (function() {
      (function($, window) {   
         //ImageAdd
          $('#imageButton').on('click', 'li', function() {
            return be.bastelstu.Chat.insertText("(IMG)(/IMG)"); // <- hier bitte die Klammern korrigieren. hier im Forum darf man die IMG Tags nicht verwenden
          });
      })(jQuery, this);
    
    
    }).call(this);


    Dann müsste eigentlich alles laufen. Sagt mir bescheid, wenn sich hier Fehler eingeschlichen haben :whistling:

    Hi,


    ich werkel an einem Plugin, womit man unter anderem auf Knopfdruck auf der Sidebar im Chat die komplette Smileyliste anzeigen lassen kann. Dabei werden User- und Raumliste ausgeblendet. Die Smileyliste sollte von der Höhe her idealerweise die Sidebar komplett ausnutzen. Solange der Chat nicht im Fullscreen Modus ist, funktioniert das wunderbar:


    Screenie 1


    Vom Chatscript inspiriert habe ich es einfach so umgesetzt (der folgende Code befindet sich in einer .js Datei, den ich über den Templatelistener in javascriptInclude eingefügt habe):


    Code
    var sumHeight = $('#timsChatUserListContainer').height() + $('#timsChatRoomListContainer').height();
        $('#chatSmileyList').height(sumHeight);


    Somit wird die Höhe immer richtig berechnet. Anders sieht es leider im Fullscreenmode aus. Mein Ansatz war, dass ich die Höhe neu berechne, nachdem die Sidebarboxen (oder streng genommen die Userlistbox) ihre neuen Höhen angenommen habe, nach denen ich wieder abfragen kann:


    Code
    $('#timsChatFullscreen').click(function(event) {
            sumHeight = $('#timsChatUserListContainer').height() + $('#timsChatRoomListContainer').height();
            $('#chatSmileyList').height(sumHeight);
         });


    Nicht wirklich spektakulär, dennoch klappt es nicht so ganz, wie gewollt. Sobald ich den Chat auf Fullscreen gestellt habe, behält die Smileyliste ihre Größe. Erst, wenn ich den Chat wieder in ihre Normalgröße zurücksetze, nimmt die Liste die Größe an, die sie hätte vorher im Fullscreenmode haben sollen.

    Screenie 2


    Man könnte hier annehmen, dass der Click Event von meinem Skript vor dem Event vom Hauptskript ausgeführt wird und die Höhe sozusagen zu früh berechnet.


    Könnt ihr mir sagen, wie ich das Problem beseitigen kann? Falls ich nur einen dummen Fehler reingehauen habe, dann sorry. Der Tag war lang :D


    Gruß


    ~Schorsch

    Hiho,


    die Sprechblasen in der Chat-Anwendung kann man mit Hilfe von ein paar kleinen Tricks eine persönliche Note verleihen. Hier zeige ich euch, wie das geht... ich versuche es zumindest :D


    Der Übersicht halber nehmen Sprechblasen abwechselnd eine andere Farbe an, die sich je nach Stil ändern kann (Standardmäßig müsste es weiß und grau sein). Wundert euch also nicht, dass ich im folgenden Code spezifisch jede gerade und ungerade Sprechblase einzeln einfärbe.


    Normale Sprechblasen



    Damit habt ihr wunderschöne grüne und rote Sprechblasen im Chat. Der Lesbarkeit halber solltet ihr aber geeignetere Farben auswählen. Eure Kreativität sind da keine Grenzen gesetzt.


    Flüster Sprechblasen


    Wenn ihr die Sprechblasen der Flüsternachrichten hervorheben wollt, solltet ihr einen Blick auf diesen Code werfen:


    CSS
    #timsChatMessageContainer0 .timsChatMessage7 .timsChatInnerMessage{
            background: #ffeeee !important;
        }


    Die Sprechblasen in privaten Kanälen werden durch den obrigen Code nicht beeinflusst.


    Sagt mir bescheid, wenn ihr Fragen und/oder Verbesserungsvorschläge habt. Vielleicht lassen sich einige Sprechblasen noch eleganter und möglichst ohne !important umfärben :thumbup:

    Hi,


    in diesem Thread zeige ich euch, wie ihr gezielt Nachrichten im Chat formatieren könnt, seien es nun Away-, /me- oder Eintrittsnachrichten und noch vieles mehr. Jeder Nachrichttyp in Tim's Chat hat eine eigene CSS-Klasse spendiert bekommen, die .timsChatMessageX heißen, wobei das X eine bestimmte Zahl ist, je nachdem, welcher Nachrichtentyp welche Zahl zugewiesen wurde. Aus diesem Grund sehen die Codes hier recht ähnlich aus, bis auf eine Ausnahme. Die Textformatierungen habe ich willkürlich gewählt. Euch steht es natürlich offen, jede Farbe, Formatierungen nach eurer Wahl anzuwenden.


    Normale Nachrichten:


    Code
    .timsChatMessage0{
        color:#013370;    
    }


    Eintrittsnachrichten:


    Code
    .timsChatMessage1{
            color: #5050ff;
            font-weight: bold;
    }


    Austrittsnachrichten:


    Code
    .timsChatMessage2{
            color: #ff5050;
            font-weight: bold;
    }


    Dieser Code formatiert auch die Raumwechsel-Meldungen.


    Me-Nachrichten:


    Code
    .timsChatMessage6{
            color: #e0e0e0;
    }


    Flüsternachrichten:


    Code
    .timsChatMessage7{
            color: #ff0000;
            font-style: italic;
    }


    Eigene Nachrichten:


    Code
    .ownMessage{
        color:#000099;    
    }

    Wenn Bedarf nach einem cls-Plugin besteht, kann ich gerne eins raushauen :) Ich hatte eh vor, eine kleine Sammlung an Zusatzbefehlen, wie zum Beispiel /dice oder /link, womit man leicht ganze Texte verlinken kann, rauszubringen :D Durch meine Prüfungszeit kann selbst das leider etwas dauern.