jCounter nutzen?

  • Ich würde es auch gerne für die Titelzeile und im Texteditor nutzen, vllt kann einer sagen welches Template dazu angepasst werden muss oder vllt für uns die sich damit nicht so gut auskennen, den Code wie es mit jCounter aussehen sollte, rein stellen?

  • Hallo,


    das ganze muss in einen <script>-Tag, der Selektor sollte entsprechend natürlich auf dein Plugin abgestimmt sein.


    Leider kann ich mir nicht wirklich vorstellen,wie ich das machen soll im Script und auf mein Plugin abstimmen.


    Ich würde es auch gerne für die Titelzeile und im Texteditor nutzen, vllt kann einer sagen welches Template dazu angepasst werden muss oder vllt für uns die sich damit nicht so gut auskennen, den Code wie es mit jCounter aussehen sollte, rein stellen?


    Ich kenne mich Zwar etwas mit der Materie aus,aber auch ich würde eine anleitung oder besser erklärung zum anwenden begrüssen.

    • Offizieller Beitrag

    Hallo,


    um den jCounter in einem Plugin nutzen zu können, musst du eigenes JavaScript einbinden, dies geht zum Beispiel über einen Template-Listener wie den folgenden:


    Hier müssen dann der Name des Listeners, der Name des Templates in dem dieser greifen soll (z.B. headInclude (wäre dann auf jeder Seite)), der Name eines in diesem Template vorhandenen Events; welches am besten geeignet ist, muss je nach Situation entschieden werden (im headInclude würde sich javascriptInclude anbieten), und der Name der JavaScript-Datei angepasst werden.


    In der im Template-Listener angegeben Datei mein.paketbezeichner.bla.js und mein.paketbezeichner.bla.min.js (letztere ist minimiert und wird genutzt, wenn das WCF nicht im Debug-Modus ist), reicht es aus, einen Code wie diesen zu nutzen:

    JavaScript
    $('.meineKlasse').jCounter();


    Wenn die Elemente mit der Klasse .meineKlasse nun unterstütze Elemente sind, wird dort der jCounter eingebaut.
    Natürlich lassen sich hier auch komplexere Selektoren nutzen, z.B. $('#content > div > .meineKlasse.mitNebenklasse + .foo'); hier sollte man sich dann vielleicht einmal die CSS-Selektore ansehen, dann lassen sich diese auch leicht mit Tools wie Firebug finden (wobei der mitlerweile afaik auch CSS-Selektoren für Elemente findet, sind aber sicher nicht immer optimal ;) ).


    ==============================


    Im CKEditor kann der jCounter allerdings nicht genutzt werden.


    Zum jCounter in der PostAddForm im Titel-Eingabefeld:
    Dort könnte ein Template-Listener auf das Template postAdd mit dem Event informationFields funktionieren (wenn Tim eben das passende Event rausgesucht hat :whistling:).
    Im JavaScript müsste dann einfach $('#subject').jCounter(); genutzt werden.



    Achja, falls nicht schon bekannt, der jCounter hat auch noch ein paar Optionen:

  • Danke Max soweit verstehe ich es,was ich noch nicht verstanden habe ist was muss ich in dem Script Code <script data-relocate="true" src="{@$__wcf->getPath()}js/mein.paketbezeichner.bla{if !ENABLE_DEBUG_MODE}.min{/if}.js"></script> eintragen wenn ich den Counter für den Editor beim Thema/Beitrag erstellen anzeigen möchte?

  • Habe es nun auch bei mir gemacht im Forum, nur wie kriege ich es ins Blog, Kalender und Galerie? Kann mir jemand dort auf die Sprünge helfen?
    Edit; Also ich meine die Kommentarfunktion ;)

  • Leider haut das irgendwie nicht hin ?(
    Habe sämtlich Variationen probiert, als Bsp: der Blog


    Meine Javascript sieht so aus

    Zitat

    $('.commentList input').jCounter();

    und heißt

    Zitat

    jCounter.CommentList.js


    so eingebunden:

    Zitat

    <![CDATA[<script data-relocate="true" src="{@$__wcf->getPath()}js/jCounter.CommentList.js"></script>]]>


    Template:

    Code
    blogEntryCommentAdd

    oder

    Code
    blogEntryCommentList

    oder

    Code
    CommendAdd

    oder

    Code
    jsCommentAdd


    Event:

    Zitat

    messageFields

    oder

    Zitat

    informationFields

    • Offizieller Beitrag

    Heyho,


    ich habe, auf Tims Anstupser hin, noch einmal nachgeschaut:
    Die Kommentarboxen werden per JavaScript eingebunden.


    Dein JavaScript müsste dann in etwa so aussehen:


    JavaScript
    // Kurzform von jQuery.ready; wird erst ausgeführt, wenn das Dokument vollständig geladen ist
    $(function() {
        WCF.DOMNodeInsertedHandler.addCallback('WCF.Comment.Handler.jCounter', function() {
            $('.jsCommentResponseAdd input, .jsCommentAdd input').jCounter();
        });
    });