# Ρυθμίσεις, αναρτήσεις, αρχεία και επισκέπτες του CMS του Total.js και πού αποθηκεύεται το καθετί

> Οι ρυθμίσεις του CMS του Total.js, ο διαχειριστής αναρτήσεων, πώς σερβίρονται και αλλάζουν μέγεθος τα αρχεία που ανεβάζετε, τα στατιστικά επισκεπτών και ο πίνακας ελέγχου, η ενσωμάτωση με το OpenPlatform και το μοντέλο δεδομένων του ιστότοπου.

Framework: cms
Product: CMS (cms@8071e48)
Language: el
Content-SHA256: b31f925b53004692bd867abbb40bba2ea78b1b30191755446d9595546712cce4
Snapshot: c0700e321579725c5cf4f5ace1ad7d2866d1b4f93c24a63c0b41b6b7998e976c
Sources: 
Review: not-recorded

## Ρυθμίσεις

Το πρόσθετο *Settings* (`settings_read`, `settings_save`· δικαίωμα `settings`) επεξεργάζεται τη διαμόρφωση που κρατά το CMS στα μεταδεδομένα του ιστότοπου και φορτώνει στο `CONF` σε κάθε εκκίνηση:

| Κλειδί | Σημασία |
|---|---|
| `name` | το όνομα του ιστότοπου, χρησιμοποιείται στο `<title>` κάθε σελίδας εκτός από το `/` και στο όνομα αρχείου του αντιγράφου ασφαλείας |
| `url` | η δημόσια διεύθυνση του ιστότοπου· το CMS την ενημερώνει επίσης από το host των αιτημάτων διαχείρισης |
| `smtp` | οι ρυθμίσεις SMTP ως κείμενο JSON (`server`, `from`, `user`, `password`, `port`)· το `settings_test` τις δοκιμάζει |
| `icon` | ένα εικονίδιο για τον ιστότοπο |
| `$tms`, `secret_tms` | δημοσιεύει τα συμβάντα μέσω TMS, και το μυστικό αυτής της σύνδεσης |
| `op_reqtoken`, `op_restoken` | τα tokens μιας εφαρμογής [OpenPlatform](/en/openplatform/how-an-app-connects/)· όταν έχουν οριστεί και τα δύο, η σύνδεση στη διαχείριση αντικαθίσταται από αυτή του OpenPlatform |
| `totalapi` | ένα κλειδί για τις υπηρεσίες του Total.js API |

Τα πρόσθετα μπορούν να προσθέσουν κι άλλα κλειδιά, που εμφανίζονται στην ίδια φόρμα. Οι τιμές που βρίσκονται στο αρχείο `config` (`$api`, `cdn`, `salt` και, αν το προσθέσετε, `token`) δεν επεξεργάζονται εδώ.

## Αναρτήσεις

Το πρόσθετο *Posts* είναι ένας μικρός διαχειριστής άρθρων, αποθηκευμένων σε δικό του αρχείο NoSQL μέσα στον χώρο αποθήκευσης. Μια ανάρτηση έχει `name`, `category`, `picture`, `summary`, `body`, `reference`, `icon`, `color`, `hidden` και `date`· η διαχείριση τις εμφανίζει με τις νεότερες πρώτες (100 ανά σελίδα) και το `posts_categories` επιστρέφει τις κατηγορίες που χρησιμοποιούνται. Οι αναρτήσεις είναι δεδομένα για τον δικό σας κώδικα: ο δημόσιος renderer του CMS (`controllers/default.js`) δεν τις εκτυπώνει, οπότε ένα δικό σας widget ή μια δική σας διαδρομή πρέπει να τις διαβάσει και να τις σχεδιάσει.

## Αρχεία

Το πρόσθετο *Files* αποθηκεύει τις μεταφορτώσεις στον χώρο αρχείων και τις σημειώνει ως δημόσιες. Το `GET /download/<id>.<ext>` σερβίρει ένα δημόσιο αρχείο (μόνο τα δημόσια· τα υπόλοιπα απαντούν 404). Για εικόνες, το `?s=<percent>` επιστρέφει μικρότερο JPEG (η τιμή πρέπει να είναι μεταξύ 10 και 80, με ποιότητα 80), και το `?download=1` επιβάλλει λήψη. Οι διαδρομές μεταφόρτωσης και τα όριά τους βρίσκονται στο [το API διαχείρισης](/en/cms/the-admin-api/).

## Επισκέπτες και ο πίνακας ελέγχου

Η ενότητα `modules/visitors.js` μετρά τις επισκέψεις των δημόσιων σελίδων μέσω του σεναρίου `/visitors.js` που περιλαμβάνει κάθε σελίδα: μοναδικοί επισκέπτες, προβολές, προγράμματα περιήγησης, παραπέμποντες, επισκεψιμότητα από αναζήτηση, κοινωνικά δίκτυα και απευθείας, κινητό και υπολογιστής, ώρες της ημέρας και οι άνθρωποι που είναι online (ένας επισκέπτης είναι online για 20 λεπτά χωρίς δραστηριότητα). Το πρόσθετο *Dashboard* σχεδιάζει αυτούς τους αριθμούς από τα `dashboard_stats`, `dashboard_online`, `dashboard_browsers`, `dashboard_referers` και `dashboard_pages`.

## OpenPlatform

Όταν έχουν οριστεί τα `op_reqtoken` και `op_restoken`, το CMS συνδέει τους ανθρώπους μέσω [OpenPlatform](/en/openplatform/what-is-openplatform/) (ενότητα `modules/openplatform.js`) και κάθε πρόσθετο προσθέτει το δικαίωμά του στη λίστα που δείχνει το OpenPlatform όταν αντιστοιχίζετε ομάδες: `pages`, `layouts`, `widgets`, `navigation`, `posts`, `files`, `redirects`, `variables`, `settings` και `admin`. Θυμηθείτε τον κανόνα του OpenPlatform: μια εφαρμογή είναι ορατή μόνο στις ομάδες που της αντιστοιχίζετε.

## Το μοντέλο δεδομένων

Το `MAIN.db` κρατά τα μεταδεδομένα του ιστότοπου (`pages`, `layouts`, `widgets`, `redirects`, `vars`, `nav`, `config` και `storage`) και αποθηκεύεται ως ένα έγγραφο JSON με όνομα `meta` στον χώρο αρχείων. Το HTML κάθε σελίδας και layout είναι ένα αρχείο αυτού του χώρου, με όνομα το id της σελίδας ή του layout. Το `FUNC.load()` διαβάζει τα μεταδεδομένα στην εκκίνηση, μεταγλωττίζει τα widgets (τρέχοντας τη συνάρτησή τους `install`) και ξαναχτίζει τις cache· το `FUNC.save()` τα γράφει πίσω. Γι’ αυτό ένα αντίγραφο ασφαλείας του χώρου αποθήκευσης είναι αντίγραφο ασφαλείας του ιστότοπου.
