Μεσογειακό — Κέντρο Επαγγελματικής Κατάρτισης & Custom CMS
Επισκόπηση
Το Μεσογειακό είναι αδειοδοτημένο κέντρο δια βίου μάθησης και επαγγελματικής κατάρτισης στη Θεσσαλονίκη, και η ιστοσελίδα του είχε μεγαλώσει πάνω σε WordPress και στο page builder του BeTheme. Η ανακατασκευή κρατά όλο το περιεχόμενο και τίποτα από την πλατφόρμα. Είναι καθαρή PHP 8.5 πάνω σε MySQL — ένας front controller, ένας autoloader δεκαπέντε γραμμών, χωρίς framework, χωρίς Composer και χωρίς build — περίπου πέντε χιλιάδες γραμμές κώδικα και δύο χιλιάδες templates. Τα ελληνικά είναι η προεπιλογή και τα αγγλικά βρίσκονται κάτω από το /en/, και η ισοτιμία των δύο γλωσσών είναι δομική, όχι πρόσθετη: κάθε έργο, νέο και σελίδα είναι μια εγγραφή με μία γραμμή μετάφρασης ανά γλώσσα, τα slugs ζουν στη μετάφραση ώστε οι ελληνικές σελίδες να κρατούν ελληνικά URL, και μια τρίτη γλώσσα δεν θα χρειαζόταν καμία αλλαγή στο σχήμα της βάσης. Η μετάπτωση είναι κώδικας, όχι μια εφάπαξ εξαγωγή. Είκοσι ένα διατεταγμένα, επαναλήψιμα βήματα ξαναχτίζουν ολόκληρο το site από την πηγή του WordPress — διαβάζουν το περιεχόμενο του Muffin Builder, αφαιρούν τα τυποποιημένα κείμενα, κανονικοποιούν τις επικεφαλίδες, ενώνουν τα διπλά νέα, βγάζουν σε αρχεία τις ενσωματωμένες εικόνες data-URI — και μεταφέρουν 33 έργα, 90 νέα και 20 σελίδες και στις δύο γλώσσες, με 798 ανακατευθύνσεις ώστε οι παλιοί σύνδεσμοι να οδηγούν στις νέες τους σελίδες. Κάθε εικόνα της βιβλιοθήκης είναι WebP κάτω από 200 KB: η ποιότητα κατεβαίνει από 82 σε 40, έπειτα οι διαστάσεις μικραίνουν μέχρι να χωρέσει, και το πρωτότυπο διαγράφεται. Η διαχείριση δίνει στο κέντρο τα έργα, τα νέα και τις σελίδες του και στις δύο γλώσσες με TinyMCE, βιβλιοθήκη πολυμέσων, στοιχεία επικοινωνίας, και τους μετρητές και τα μπλοκ της αρχικής. Τα δομημένα δεδομένα φέρουν την ταχυδρομική διεύθυνση, τον αριθμό Γ.Ε.ΜΗ. και το ωράριο — τρία στοιχεία που το παλιό site δημοσίευε σε ένα widget του footer του θέματος, όπου καμία ανάρτηση και κανένας importer δεν μπορούσε να τα δει.
Προκλήσεις
Το WordPress είχε κρύψει ορισμένα στοιχεία. Η ταχυδρομική διεύθυνση, ο αριθμός Γ.Ε.ΜΗ. και το ωράριο βρίσκονταν σε ένα widget του footer του θέματος και όχι σε κάποια ανάρτηση, οπότε μια εξαγωγή περιεχομένου δεν τα έβλεπε ποτέ, και ο δεύτερος αριθμός τηλεφώνου διέφερε σε τρία σημεία του παλιού site. Τα ελληνικά URL χαλούσαν επίσης τον προφανή σχεδιασμό της βάσης: κωδικοποιημένα με percent-encoding ξεπερνούν συχνά τους 191 χαρακτήρες μοιράζοντας μεγάλα προθέματα, οπότε ένα index προθέματος απορρίπτει πραγματικά διαφορετικές διευθύνσεις ως διπλές. Και ένας δίγλωσσος editor έχει μια σιωπηλή αστοχία — μια αποθήκευση που παραλείπει μία γλώσσα δεν ξεχωρίζει από κάποιον που τη σβήνει σκόπιμα.
Λύσεις
Κάθε διόρθωση είναι δικό της αριθμημένο βήμα μετάπτωσης, οπότε ένα καθαρό ξαναχτίσιμο από το WordPress αναπαράγει τον αριθμό τηλεφώνου που επιβεβαίωσε ο πελάτης και τη διεύθυνση που ανακτήθηκε, αντί να εισάγει ξανά τα παλιά λάθη. Οι ανακατευθύνσεις είναι μοναδικές σε ένα hash SHA-256 της παλιάς διαδρομής αντί για πρόθεμα. Κάθε τμήμα αρχείου επιλύεται μόνο στη γλώσσα του, ώστε ένα στοιχείο να μην ζει σε δύο URL και να μοιράζει τη δική του κατάταξη. Κάθε φόρμα μετάφρασης στέλνει έναν δείκτη παρουσίας ανά γλώσσα — αυτό επιτρέπει σε μια γλώσσα που λείπει να σημαίνει «ανέγγιχτη» και όχι «διαγραφή» — και το admin smoke suite έχει τεστ παλινδρόμησης γι' αυτό. Τα ονόματα αρχείων κανονικοποιούνται σε NFC πριν τη μεταγραφή, επειδή το macOS και το Linux αποθηκεύουν το ίδιο ελληνικό όνομα με διαφορετικά bytes.
Γκαλερί

Αρχική — Η Άδεια του Κέντρου Μπροστά, τα Έργα του σε Ένα Κλικ

Έργα — Ενεργά και Παλαιότερα, με Ένα Κλικ Απόσταση

Σελίδες Έργων — Κείμενο σε Όλο το Πλάτος, Γραμμένο και Μορφοποιημένο από το Κέντρο

Νέα — Ενενήντα Άρθρα από το WordPress, και στις Δύο Γλώσσες

Εργαλεία Αυτοβοήθειας — Οδηγοί και Υλικό σε Ένα Ευρετήριο

Σχετικά με Εμάς — Άδειες, Μητρώα και Ευρωπαϊκά Δίκτυα σε Μία Ανάγνωση

Επικοινωνία — Email, Δύο Τηλέφωνα και η Διεύθυνση σε Τέσσερις Κάρτες

Αρχική — Στρατηγική, Πιστοποιήσεις και Εργαλεία Μάθησης Κάτω από το Καλωσόρισμα

Ενεργά Έργα — Η Τρέχουσα Δουλειά του Κέντρου, με την Αφίσα Πρώτα

Ανακοινώσεις — Ποιος Μπορεί να Συμμετάσχει και Πού να Τηλεφωνήσει, Ξεκάθαρα

Ομάδες-Στόχοι — Ποιους Εκπαιδεύει το Κέντρο, με Απλά Λόγια

Η Δραστηριότητά μας — Interreg, Erasmus+ και ΕΣΠΑ, το Καθένα με Ένα Άγγιγμα

Η Αρχική στο Κινητό — Τηλέφωνο ή Email Πριν Καν Κάνετε Κύλιση

Το Μενού στο Κινητό — Έξι Ενότητες, Αρκετά Μεγάλες για να τις Πατήσετε

Μετρητές Αρχικής — Τέσσερα Νούμερα που Αλλάζει το Ίδιο το Κέντρο

Η Αγγλική Πλευρά — Το Ίδιο Αρχείο με τα Δικά του URL

Νέα στο Κινητό — Ημερομηνία, Τίτλος και Περίληψη με μια Ματιά

Αυτοεκπαίδευση στο Κινητό — Ένας Οδηγός σε Κάθε Κάρτα, ένα Πάτημα Μακριά

Επικοινωνία στο Κινητό — Ένα Πάτημα για Email, Ένα για Κλήση
Σύστημα διαχείρισης

Ο Πίνακας Ελέγχου — Τι Δημοσιεύει το Κέντρο, και Ποιες Μεταφράσεις Λείπουν ή Περιμένουν Έλεγχο

Έργα — Γλώσσες, Υποέργα και Μη Ελεγμένες Μεταφράσεις σε Κάθε Γραμμή

Ο Επεξεργαστής — Καρτέλες Ελληνικά και English, Πεδία SEO, Πλούσιο Κείμενο

Μετρητές — Τα Νούμερα της Αρχικής, και στις Δύο Γλώσσες

Στοιχεία Επικοινωνίας — Μία Φόρμα, Δύο Γλώσσες, σε Όλη την Ιστοσελίδα

Πολυμέσα — Κάθε Εικόνα σε WebP Κάτω από 200 KB