Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Το WordPress ως Application Development Framewo...

Το WordPress ως Application Development Framework - Γιώργος Τεκελής

WordCamp Thessaloniki 2019

Το WordPress, είναι αρκετά περισσότερα από ένα CMS για δημιουργία
ιστοσελίδων. Μπορούμε πλέον να το προσεγγίζουμε ως ένα Application
Development Platform. Η ίδια η αρχιτεκτονική του καθώς και τα APIs του,
μας επιτρέπουν να το προσαρμόσουμε και να το επεκτείνουμε ώστε να
αναπτύξουμε εφαρμογές για κάθε πιθανό σενάριο. Αυτές οι εφαρμογές
μπορούν να έχουν ως κέντρο το ίδιο το WordPress και να είναι
ανεπτυγμένες εξ ολοκλήρου επάνω σε αυτό η να αποτελεί ένα μέρος της
γενικής αρχιτεκτονικής.
Στην παρουσίαση θα δούμε:

– Πώς χρησιμοποιήσαμε το WordPress στο εργαστήριο για να υλοποιήσουμε μία σημαντική εφαρμογή

– Πώς κάνουμε ανάλυση και υλοποίηση της εφαρμογής ώστε να εκμεταλλευτούμε τα APIs και τις δυνατότητες του WordPress

– Integrations με ήδη υπάρχοντα APIs

– Τα πολλά οφέλη από την χρήση του και γιατί από εδώ και πέρα θα είναι
σημαντικό κομμάτι του workflow ανάπτυξης εφαρμογών στο εργαστήριο μας

Συνήθως χρησιμοποιούμε το WordPress για να δημιουργήσουμε όμορφα και λειτουργικά websites. Όμως μας παρέχει όλα τα εργαλεία ώστε να το χρησιμοποιήσουμε και ως μία πλατφόρμα ανάπτυξης εφαρμογών. Οι εφαρμογές αυτές μπορεί να είναι στημένες εξ’ ολοκλήρου στο WordPress είτε να αποτελούν μέρος ενός οικοσυστήματος.
Θα δούμε, μεταξύ άλλων, το γιατί και σε ποιες περιπτώσεις να χρησιμοποιήσουμε WordPress για ανάπτυξη εφαρμογών, ποια πλεονεκτήματα μας παρέχει και πώς να αναλύσουμε ένα project με στόχο την υλοποίηση σε WordPress.
Όλα τα παραπάνω θα τα πλαισιώσουμε με παραδείγματα από ένα πραγματικό project που υλοποιήσαμε στο ΕΜΠ.

WordPress Greek Community

October 12, 2019
Tweet

More Decks by WordPress Greek Community

Other Decks in Technology

Transcript

  1. Data visualization Δεν φορτώνουμε άσκοπα libraries σε σελίδες που δεν

    χρειάζονται Φορτώνουμε Highcharts μόνο για συγκεκριμένο page template is_page_template() wp_enqueue_script() Custom plugin
  2. Data visualization 1. Έχουν φορτωθεί τα libraries του chart (view

    code) 2. Έχει φορτωθεί το custom .js script που κάνει render το/τα σωστά charts ανάλογα με το/τα shortcodes της σελίδας Custom plugin
  3. Chart data 1. Έχουν φορτωθεί τα custom libraries για το

    συγκεκριμένο chart 2. Γίνεται η κλήση ajax 3. Τα δεδομένα που επιστρέφουν γίνονται bind στο chart 4. Γίνεται render το chart στη σελίδα
  4. Asset management 1. Χρήση custom page template 2. Custom post

    type, ίδια πεδία με table στη βάση 3. Loop όλα τα “Conventional Units” custom posts και render λίστα με τις μονάδες 4. Κλήση WP Rest API και επιστροφή των custom fields όλων των μονάδων (json) 5. Με κλικ σε κάθε μονάδα, filter το json και bind τα πεδία της συγκεκριμένης στο view (details)
  5. Database Services / APIs UI AJAX CPT: Conventional Units WP

    REST API ACF Plugin Custom page template JWT
  6. Asset management 1. Απενεργοποιεί μονάδα στο UI 2. Αποστέλλεται μήνυμα

    σε RabbitMQ 3. Ο σταθμός κάνει consume το μήνυμα 4. Κλείνει την μονάδα Ενεργοποίηση/απενεργ. μονάδας Χειριστής προς Σταθμό
  7. Asset management 1. π.χ. Ο Σταθμός της Χίου ενεργοποιεί τη

    μονάδα 2. Αποστέλλεται μήνυμα σε RabbitMQ 3. Η εφαρμογή μας κάνει consume το μήνυμα 4. Ενημερώνεται η WordPress βάση και ο MSSQL Ενεργοποίηση/απενεργ. μονάδας Σταθμός προς Χειριστή
  8. Database Services / APIs UI AJAX CPT: Conventional Units WP

    REST API ACF Plugin Custom page template JWT Asset Management
  9. User/Access management User management plugin (Ultimate Member) Τα JWTs παράγονται

    από το plugin με λίγο custom κώδικα Μας προσφέρει features όπως roles Έτοιμες σελίδες Login, Logout, Sign up... Shortcodes
  10. Database Services / APIs UI AJAX CPT: Conventional Units WP

    REST API ACF Plugin Custom page template JWT Asset Management User Management
  11. Database Services / APIs UI AJAX CPT: Conventional Units WP

    REST API ACF Plugin Custom page template JWT Asset Management User Management Logging Reporting