zusätzlichen Button im Chat einfügen

  • Hallo,
    ich möchte gerne für meinen Farbgenerator einen zusätzlichen Button einfügen, ohne das entsprechende template chat.tpl zu bearbeiten. habe hierfür dieses event gefunden:
    {event name='buttons'}
    ein entsprechendes template habe ich erstellt __farbgenChatButton.tpl wo der Button angezeigt wird.


    im TemplateListener hab ich das hier:


    das template selbst liegt momentan im ordner wcf/templates
    nur wird mir der Button nicht angezeigt. Was mache ich falsch?


    Der Code vom Template:

    Code: __farbgenChatButton.tpl
    <li>
    							<a href="index.php?farbgenerator/" target="_blank" id="ac-cafeFarbgenerator" class="button jsTooltip" title="Farbgenerator">
    								<span class="icon icon16 fa fa-paint-brush"></span>
    								<span class="invisible">Farbgenerator</span>
    							</a>
    						</li>


    Füge ich den Code aus dem Template direkt in die chat.tpl ein, dann wird mir der Button angezeigt :S
    Ich hoffe, mir kann da jemand helfen :whistling::thumbup:



    Edit: habe es jetzt hinbekommen :thumbup:
    musste beim templatelistener den templatenamen in chat ändern dann ging es:

    siehe Screenshot:

  • Ist zwar schon ein halbes Jahr alt, aber ich möchte etwas ähnliches machen (verschiedene Buttons ergänzen) und hab noch ein kleines Verständnisproblem. Diese templateListener.xml Datei wird doch nur bei der Installation verwendet, oder? Hast du dann deine __farbgenChatButton.tpl Datei mit in die template.tar reingepackt und dann den Chat neu installiert? Wie ist das wenn der Chat vorher bereits installiert ist?


    Ist der Quellcode aus der __farbgenChatButton.tpl komplett?


    Wäre es nicht der sauberere Weg (ich frag nur, ich bin absoluter Anfänger) ein Plugin für den Chat zu schreiben? Also erst den Chat installieren und dann das Plugin mit den Extra Buttons mit der Abhängigkeit vom Chat. Könnte ich zwar jetzt nicht direkt umsetzen, aber so von der Idee her. Vielleicht hat da jemand auch schon was gemacht und könnte seine Erfahrungen teilen.


    Ps.: Schickes Template auf der Seite mit dem Farbgenerator. ;)

    • Official Post

    Hi, sorry, dass es aktuell ein wenig länger gedauert hat.


    Diese templateListener.xml Datei wird doch nur bei der Installation verwendet, oder?

    Korrekt, die Template Listener werden bei der Installation im System registriert.


    Wäre es nicht der sauberere Weg (ich frag nur, ich bin absoluter Anfänger) ein Plugin für den Chat zu schreiben? Also erst den Chat installieren und dann das Plugin mit den Extra Buttons mit der Abhängigkeit vom Chat. Könnte ich zwar jetzt nicht direkt umsetzen, aber so von der Idee her. Vielleicht hat da jemand auch schon was gemacht und könnte seine Erfahrungen teilen.

    Jap, das wäre der Weg.
    Das Paket besteht dann quasi aus package.xml, eventListener.xml und templates.tar.
    Falls du noch weitere Hilfe benötigst, helfen wir gerne weiter :)


    Alternativ sollten sich diese Dinge auch über folgendes Plugin relativ einfach realisieren lassen: https://pluginstore.woltlab.co…eigene-template-listener/

  • Also der Weg mit dem Plugin war mir jetzt doch etwas zu schwierig, vielleicht kommt das später noch. :D
    Ich habe mich vielmehr an diesen Tipp gehalten und das chat.tpl Template angepasst. Die eingefügten Buttons sehen dann etwa so aus (img Tag):

    Code
    <li>
      <a id="timsChatInsertImage" accesskey="p" class="button jsTooltip" title="{lang}wcf.bbcode.button.image{/lang}" onclick="javascript:be.bastelstu.Chat.insertText('[img=][/img]');$('#timsChatInput').setCaret( $('#timsChatInput').getCaret()-7 );">
        <span class="icon icon16 icon-picture"></span>
        <span class="invisible">{lang}wcf.bbcode.button.image{/lang}</span>
      </a>
    </li>

    Mit der setCaret() und der getCaret() Funktion wird dabei der Cursor zwischen die Tags positioniert, so dass man direkt schreiben kann. Einziger Nachteil ist hierbei, dass die insertText() Funktion immer am Ende der Zeile Text einfügt und man die Postion nicht beeinflussen kann. Damit sind Verschachtelungen von z.B. fett und kursiv [b][i][/i][/b] nicht möglich.
    Noch besser wäre natürlich, wenn man den Text mit der Maus markieren könnte und diesen dann durch die Tags umschließen würde. Aber so geht es auch erstmal. ;)


    So sieht der Editor jetzt aus: