
Γλώσσα 🇬🇷 Ελληνικά
Υπόβαθρο
Διεπαφή API
Ανάπτυξη Επεκτάσεων
Πλαίσιο
FastComments παρέχει τη δυνατότητα επέκτασης της βασικής λειτουργικότητάς μας μέσω σεναρίων που ονομάζουμε Επεκτάσεις.
Ένα Extension μπορεί να προσθέσει επιπλέον σήμανση στο widget σχολίων, ακροατές συμβάντων και να εκτελέσει αυθαίρετο κώδικα.
Εδώ θα βρείτε παραδείγματα επεκτάσεων που έχουμε σε παραγωγή, καθώς και τεκμηρίωση για το πώς να γράψετε επεκτάσεις.
Κύκλος ζωής επέκτασης 
Το script για κάθε επέκταση ανακτάται και εκτελείται πριν το widget σχολίων αρχίσει να ανακτά το πρώτο σετ σχολίων και να αποδίδει το UI.
Κατά την αρχική φόρτωση, τα ακόλουθα δεδομένα θα προστεθούν στο αντικείμενο της επέκτασης:
config- Αναφορά στο αντικείμενοconfig.translations- Αναφορά στο αντικείμενοtranslations.commentsById- Αναφορά σε όλα τα σχόλια ανά id.root- Αναφορά στον ριζικό κόμβο DOM.
Οι επεκτάσεις θα πρέπει να αντικαταστήσουν τις επιθυμητές συναρτήσεις, τις οποίες το widget σχολίων θα καλεί στις κατάλληλες στιγμές.
Ορισμός επέκτασης 
Η μικρότερη δυνατή επέκταση θα ήταν:
Run 
Για το παράδειγμα αυτό, αποθηκεύστε το ως my-extension.js, και κάντε το διαθέσιμο στο https://example.com/my-extension.min.js.
Αυτή η επέκταση δεν κάνει τίποτα, εκτός από το ότι κατά τη φόρτωση ανακτά το αντικείμενο επέκτασης που δημιουργείται από τη βασική βιβλιοθήκη σχολίων.
This Extension object is a singleton and is not shared with any other extensions.
Στη συνέχεια, για να φορτώσουμε την επέκτασή μας, πρέπει να ενημερώσουμε το widget σχολίων γι' αυτήν. Για παράδειγμα:
Run 
Για λειτουργικά παραδείγματα, δείτε την επόμενη ενότητα.
Παραδείγματα επεκτάσεων 
Στο FastComments, γράφουμε τις δικές μας επεκτάσεις, χρησιμοποιώντας το ίδιο API. Μπορείτε να δείτε τον μη συμπιεσμένο κώδικα για αυτές τις επεκτάσεις στα ακόλουθα σημεία τερματισμού:
Σκοτεινή Λειτουργία
Η επέκταση Σκοτεινής Λειτουργίας φορτώνεται υπό όρους όταν εντοπιστεί σελίδα με "dark". Αυτή η επέκταση απλώς προσθέτει λίγο CSS στο widget σχολίων. Με αυτόν τον τρόπο δεν χρειάζεται να φορτώνουμε το CSS της σκοτεινής λειτουργίας όταν δεν είναι απαραίτητο.
https://fastcomments.com/js/comment-ui/extensions/comment-ui.dark.extension.js
Εποπτεία
Όταν ο τρέχων χρήστης είναι συντονιστής, χρησιμοποιούμε την επέκταση εποπτείας.
Αυτό είναι ένα καλό παράδειγμα για την προσθήκη ακροατών συμβάντων βασισμένων σε κλικ, την εκτέλεση αιτημάτων προς το API, και την προσθήκη στο μενού σχολίων και στις περιοχές σχολίων.
https://fastcomments.com/js/comment-ui/extensions/comment-ui.moderation.extension.js
Ζωντανή Συνομιλία
Η επέκταση Ζωντανής Συνομιλίας (σε συνδυασμό με άλλες ρυθμίσεις και στυλ) μετατρέπει το widget σχολίων σε ένα στοιχείο ζωντανής συνομιλίας.
https://fastcomments.com/js/comment-ui/extensions/live-chat.extension.js
Το αντικείμενο επέκτασης 
Το αντικείμενο επέκτασης αποτελείται από τον ακόλουθο ορισμό:
Run 
Το API της επέκτασης 
Η αλληλεπίδραση με το Extension είναι απλή, καθώς ορίζουμε απλώς αναφορές στις συναρτήσεις που θέλουμε να καλούνται.
Για να επεκτείνουμε το προηγούμενο παράδειγμα, ας υποθέσουμε ότι θέλουμε να προσθέσουμε HTML στην κορυφή κάθε σχολίου:
Run 
Κάθε φορά που επιστρέφετε HTML όπως αυτό, θα συγχωνευθεί στο UI μέσω ενός αλγορίθμου dom-diffing.
Χειροκίνητη επαναπόδοση ενός σχολίου
Μπορούμε να περιμένουμε την αρχική φόρτωση της σελίδας και να επαναποδώσουμε χειροκίνητα ένα σχόλιο καλώντας το reRenderComment:
Run 