
Γλώσσα 🇨🇾 Ελληνικά (Κύπρος)
Υπόβαθρο
Διεπαφή προγραμματισμού εφαρμογών (API)
Ανάπτυξη Extensions
Πλαίσιο
Το FastComments παρέχει τη δυνατότητα να επεκτείνετε τη βασική λειτουργικότητα μέσω σεναρίων που ονομάζουμε Extensions.
Ένα Extension μπορεί να προσθέσει επιπλέον σήμανση στο widget σχολίων, ακροατές συμβάντων, και να εκτελέσει αυθαίρετο κώδικα.
Εδώ θα βρείτε παραδείγματα Extensions που έχουμε σε παραγωγή, καθώς και τεκμηρίωση για το πώς να γράφετε Extensions.
Κύκλος ζωής της επέκτασης 
Το σενάριο για κάθε επέκταση ανακτάται και εκτελείται πριν το widget σχολίων αρχίσει να ανακτά το πρώτο σύνολο σχολίων και να αποδίδει το UI.
On initial load, the following data will be tagged onto the extension object:
config- Αναφορά στο αντικείμενοconfig.translations- Αναφορά στο αντικείμενοtranslations.commentsById- Αναφορά σε όλα τα σχόλια κατά id.root- Αναφορά στον ριζικό κόμβο DOM.
Οι επεκτάσεις θα πρέπει να αντικαταστήσουν τις επιθυμητές συναρτήσεις, τις οποίες το widget σχολίων θα καλεί στις κατάλληλες στιγμές.
Ορισμός επέκτασης 
Η πιο μικρή δυνατή επέκταση θα ήταν:
Run 
Για χάρη αυτού του παραδείγματος, αποθηκεύστε το ως my-extension.js, και κάντε το διαθέσιμο στη διεύθυνση https://example.com/my-extension.min.js.
Αυτή η επέκταση δεν κάνει τίποτα, εκτός από το ότι κατά τη φόρτωση ανακτά το αντικείμενο της επέκτασης που δημιουργήθηκε από τη βασική βιβλιοθήκη σχολίων.
Αυτό το αντικείμενο Extension είναι singleton και δεν μοιράζεται με άλλες επεκτάσεις.
Στη συνέχεια, για να φορτώσουμε την επέκτασή μας, πρέπει να ενημερώσουμε το widget σχολίων γι' αυτή. Για παράδειγμα:
Run 
Για λειτουργικά παραδείγματα, δείτε την επόμενη ενότητα.
Παραδείγματα επεκτάσεων 
Στο FastComments, γράφουμε τις δικές μας επεκτάσεις, χρησιμοποιώντας το ίδιο API. Μπορείτε να δείτε τον μη συμπιεσμένο κώδικα για αυτές τις επεκτάσεις στα ακόλουθα endpoints:
Σκοτεινή Λειτουργία
Η επέκταση Dark Mode φορτώνεται υπό προϋποθέσεις όταν ανιχνεύεται μια σελίδα "dark". Αυτή η επέκταση απλώς προσθέτει λίγο CSS στο widget σχολίων. Με αυτόν τον τρόπο δεν χρειάζεται να φορτώνουμε το CSS του dark mode όταν δεν είναι απαραίτητο.
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
Ζωντανή Συνομιλία
Η επέκταση Live Chat (σε συνδυασμό με άλλες ρυθμίσεις και στυλ) μετατρέπει το widget σχολίων σε ένα στοιχείο ζωντανής συνομιλίας.
https://fastcomments.com/js/comment-ui/extensions/live-chat.extension.js
Το αντικείμενο επέκτασης 
Το αντικείμενο επέκτασης αποτελείται από τον ακόλουθο ορισμό:
Run 
Το API της επέκτασης 
Η αλληλεπίδραση με το Extension είναι απλή, καθώς απλώς ορίζουμε αναφορές προς συναρτήσεις που θέλουμε να κληθούν.
Για να επεκτείνουμε το προηγούμενο παράδειγμα, ας υποθέσουμε ότι θέλουμε να προσθέσουμε HTML στο πάνω μέρος κάθε σχολίου:
Run 
Όποτε επιστρέφετε HTML σαν αυτή, θα συγχωνευτεί στο UI μέσω ενός αλγορίθμου dom-diffing.
Χειροκίνητη ενεργοποίηση της επανα-απόδοσης ενός σχολίου
Μπορούμε να περιμένουμε το αρχικό φόρτωμα της σελίδας και να επανα-αποδώσουμε χειροκίνητα ένα σχόλιο καλώντας την reRenderComment:
Run 