Φτιάξτε ολοκληρωμένα websites με το Plone!

dimitris | Δευ, 09/12/2011 - 00:11 | 32'

Παρουσιάζουμε ένα τα πιο γνωστά και ολοκληρωμένα συστήματα διαχείρισης περιεχομένου που έχουν αναπτυχθεί με την αγαπημένη μας Python

Του Μάρκου Γώγουλου




Αυτό το άρθρο απευθύνεται σε άτομα που χρησιμοποιούν ήδη την Python για άλλες εφαρμογές (system administration, scientific engineering κτλ) και θέλουν να δημιουργήσουν κάποιο site ή εφαρμογή, αλλά και για τους υπόλοιπους προγραμματιστές που θέλουν να πάρουν μια γεύση του τι μπορεί να γίνει με τη χρήση εργαλείων Python. Τέλος, ελπίζουμε ότι θα ανοίξουμε την όρεξη και σε μη προγραμματιστές, οι οποίοι θα βρουν ενδιαφέρουσα τη διαδικασία δημιουργίας απλών αλλά και πιο πολύπλοκων ιστοτόπων!

Τι είναι η Python

Η Python σήμερα είναι μια από τις πιο διαδεδομένες γλώσσες προγραμματισμού, ενώ είναι πανίσχυρη και εύκολη στην εκμάθηση. Η εξέλιξη της τα τελευταία χρόνια είναι εντυπωσιακή, ενώ κατακτά συνεχώς τομείς της επιστήμης των υπολογιστικών συστημάτων. Η γλώσσα που μέχρι πριν λίγα χρόνια ήταν γνωστή μόνο σε hackers και διαχειριστές συστημάτων, αποτελεί σήμερα τη γλώσσα εισαγωγής στον προγραμματισμό σε μεγάλα πανεπιστήμια, είναι η προτιμώμενη γλώσσα για εταιρείες κολοσσούς όπως η Google, ενώ ευρεία είναι η χρήση της στον επιστημονικό κόσμο, όπως για παράδειγμα στα πειράματα του CERN.

Python Web Programming

Η επιλογή της Python για τον προγραμματισμό στο web, τη δημιουργία δηλαδή από απλά sites, έως πολύπλοκα portals και applications έχει πολλά πλεονεκτήματα. Υπάρχουν πολύ καλά frameworks και συστήματα διαχείρισης περιεχομένου (CMS), τα οποία αναπτύσσονται από πολυάριθμες ομάδες προγραμματιστών. Τα συστήματα αυτά δεν έχουν να ζηλέψουν τίποτα από τα αντίστοιχα άλλων γλωσσών (πχ PHP). Το αντίθετο μάλιστα, υπερέχουν σε αρκετούς τομείς, όπως η ασφάλεια, όπου  η python προστατεύει από επιθέσεις που είναι υπαρκτές σε άλλες γλώσσες.

Τα CMS είναι έτοιμα συστήματα, που τα εγκαθιστάς, τα τροποποιείς μέσα απο έτοιμα menu και μέσα σε λίγες ώρες έχεις ένα έτοιμο site/portal με πολλές λειτουργίες, όπως διαχείριση χρηστών, δημιουργία σελίδων, φόρμες για επεξεργασία σελίδων, ανέβασμα εικόνων κτλ. Ένα τέτοιο CMS είναι το Plone [1], το πιο γνωστό και ισχυρό CMS για τον κόσμο της Python. Από την άλλη, υπάρχουν τα frameworks, τα οποία σου παρέχουν τα εργαλεία για να φτιάξεις κάτι από την αρχή, μέσω προγραμματισμού. Με ένα CMS μπορείς να φτιάξεις ένα πολύ καλό site χωρίς να πειράξεις καθόλου κώδικα, ενώ με ένα framework πρέπει να φτιάξεις τα περισσότερα πράγματα από την αρχή! Frameworks της Python είναι τα Django και Pyramid, με τα οποία θα ασχοληθούμε σε επόμενα άρθρα. Αν αναρωτιέται κανείς γιατί να υπάρχουν τα frameworks, τη στιγμή που υπάρχουν τα CMS, μια απάντηση είναι οτι τα frameworks σου επιτρέπουν απόλυτο έλεγχο σε ένα site ή εφαρμογή. Είναι για περιπτώσεις δηλαδή που θέλουμε να φτιάξουμε κάτι εξειδικευμένο, ή να υλοποιήσουμε μια δική μας ιδέα.

Σημασία έχει οτι για κάθε περίπτωση χρησιμοποιούμε και το κατάλληλο εργαλείο. Για ένα απλό site δεν υπάρχει λόγος να φτιάξουμε από την αρχή τα πάντα και έτσι μάλλον θα προτιμήσουμε την ασφάλεια και ευχρηστία ενός CMS. Επίσης, αν δεν είμαστε προγραμματιστές, προφανώς δεν μπορούμε να χρησιμοποιήσουμε framework, αφού απαιτεί προγραμματισμό

Το Plone

Πρόκειται για ένα ιδιαίτερα σταθερό σύστημα, με πολλές διευκολύνσεις προς τους διαχειριστές ώστε να προσθέτουν και να επεξεργάζονται περιεχόμενο, υψηλή ασφάλεια, εξαιρετική ενσωματωμένη μηχανή αναζήτησης και ισχυρό workflow engine. Το Plone στηρίζεται στον application server Zope, που είναι επίσης σε Python. Η ανάπτυξη του Plone ξεκίνησε το 2001 και αναπτύσσεται μέχρι σήμερα από μια κοινότητα εκατοντάδων προγραμματιστών ανά τον κόσμο.

Το Plone χρησιμοποιείται από μεγάλες επιχειρήσεις και οργανισμούς που τρέχουν μερικά από τα μεγαλύτερα σε επισκεψιμότητα portals και sites, ανάμεσα στα οποία και αυτά των Oxfam, eBay, Nokia, University of Cambridge, Yale University, NASA. Είναι επίσης ιδιαίτερα δημοφιλές για συστήματα ηλεκτρονικής διακυβέρνησης και έχει αποσπάσει πολλά βραβεία για τις λύσεις που έχει δώσει σε δημόσιους φορείς ανά τον κόσμο μέσω του project http://www.plonegov.org/

Η άποψη μου για το Plone μετά από 1,5 χρόνο που το χρησιμοποιώ είναι οτι αξίζει κανείς να επενδύσει σε αυτό το CMS παρά τα όποια μειονεκτήματα του. Σαν κυριότερο μειονέκτημα θα έβαζα το γεγονός οτι απαιτεί πολύ περισσότερη δουλειά στην αρχή για να εξοικειωθεί κανείς μαζί του, όσον αφορά τον προγραμματισμό και την ανάπτυξη. Από την άλλη πλευρά, σε θέματα διαχείρισης είναι πολύ πιο εύκολο από άλλα μεγάλα CMS.  Σημαντικό είναι επίσης ότι η κοινότητα που το αναπτύσσει είναι ιδιαίτερα υγιής και εύρωστη και κάθε καινούργια έκδοση που βγαίνει περιλαμβάνει σημαντικές βελτιώσεις σε όλους τους τομείς.

Εγκατάσταση του Plone

Υπάρχουν πολλοί τρόποι να εγκαταστήσουμε μέσα σε λίγα λεπτά το Plone και να αρχίσουμε να πειραματιζόμαστε Ο πιο διαδεδομένος και εύκολος, είναι να κατεβάσουμε τον unified installer, από την κεντρική σελίδα του Plone. Υπάρχει έκδοση του installer για Windows, MAC OS X, Linux, Unix, ο οποίος περιλαμβάνει σε ένα πακέτο περίπου 40MB την Python, το Zope και το Plone, τα οποία και εγκαθιστά στο σύστημά μας ώστε το Plone να μπορεί να τρέξει. Ο Installer αυτός μας γλιτώνει από πολύ κόπο που ενδεχομένως θα χρειαζόταν μέχρι να εγκατασταθούν χειροκίνητα όλα τα παραπάνω.

Εμείς όμως θα επιχειρήσουμε να εγκαταστήσουμε το Plone μέσω του συστήματος buildout. Προαπαιτούμενα για να παρακολουθήσει κανείς τα παρακάτω βήματα είναι να διαθέτει κάποιες γνώσεις διαχείρισης συστημάτων Linux, μιας και θα δουλέψουμε στο αγαπημένο μας λειτουργικό σύστημα.

Το σύστημα Buildout

Το buildout  [2] είναι ένα σύστημα για την Python που μας βοηθάει να δημιουργούμε ένα επαναχρησιμοποιήσιμο περιβάλλον ανάπτυξης, απομονωμένο από το υπόλοιπό μας σύστημα. Είναι από τα πιο διαδεδομένα εργαλεία ανάπτυξης και εγκατάστασης εφαρμογών στον κόσμο της Python και ένας προγραμματιστής αργά ή γρήγορα θα πρέπει να έρθει σε επαφή μαζί του. Η βάση του είναι ένα αρχείο, το buildout.cfg, το οποίο περιλαμβάνει το project μας και θα έχει τις ρυθμίσεις για το τι πακέτα του Plone χρησιμοποιούμε. Στη συνέχεια θα μπορούμε μέσω του αρχείου αυτού να προσθέτουμε εφαρμογές.

Δημιουργία Plone site

Θα δημιουργήσουμε ένα site το οποίο μόλις ολοκληρωθεί, θα μπει στη διεύθυνση http://www.2cvclub.gr. Θα είναι το site της λέσχης φίλων του αυτοκινήτου 2CV. Το υπάρχον site είναι μια συλλογή από html σελίδες που ανανεώνονται με ftp, αφού ο administrator τις επεξεργαστεί με κάποιον editor, οπότε καταλαβαίνει κανείς πόσο δύσχρηστη είναι η όλη διαδικασία. Το site που θα φτιάξουμε θέλουμε να περιλαμβάνει μια ολοκληρωμένη παρουσίαση των αυτοκινήτων 2cv, της λέσχης μας, αρχείο γεγονότων, πληροφορίες για επόμενα events, τις ανακοινώσεις του συλλόγου, καθώς και χώρο για τους χρήστες, να μπορούν να ανεβάσουν τις φωτογραφίες και τις ιστορίες τους. Το site θα είναι δίγλωσσο, θα περιλαμβάνει φόρμα επικοινωνίας, ενώ θέλουμε στο μέλλον να είναι δυνατή η προσθήκη newsletter, forum και επιπλέον πρόσθετων δυνατοτήτων. Θεωρούμε σίγουρο οτι οι διαχειριστές του δεν είναι υποχρεωμένοι να μάθουν να προγραμματίζουν, ούτε να ανεβάζουν html σελίδες μέσω ftp, αφού τις κάνουν edit (!), οπότε το περιβάλλον πρέπει να είναι ιδιαίτερα εύχρηστο και απλό. Για όλους τους παραπάνω λόγους, η επιλογή του Plone σαν το CMS που θα χρησιμοποιήσουμε, είναι απο τις καλύτερες που μπορούμε να κάνουμε! Το καινούργιο site θα ανέβει μέσα στο επόμενο δίμηνο, οπότε και θα συμπέσει με την κυκλοφορία του δεύτερου άρθρου της σειράς εισαγωγής στο Plone...

Τα βήματα για τη δημιουργία ενός Plone site μέσω buildout είναι τα εξής:

1) Το Plone 4 δουλεύει με την python2.6 την οποία και θα πρέπει να έχουμε εγκατεστημένη στο σύστημα μας. Έπειτα εγκαθιστούμε κάποια βασικά πακέτα που θα χρειαστούμε. Στην περίπτωση που χρησιμοποιούμε Ubuntu/Debian based σύστημα:

# apt-get install python-pastescript python-setuptools python2.6-dev
# easy_install Zopeskel


2) Δημιουργούμε ένα plone 4 buildout, μέσω της εντολής paster. Στο σημείο αυτό μπορούμε να δουλέψουμε σαν απλός χρήστης.

$ paster create -t plone3_buildout
Enter project name: club2cv.gr
Plone Version (Plone version # to install) ['3.3.5']: 4.0.2


Κρατάμε τις default ρυθμίσεις ενώ δίνουμε ορισμένες βασικές πληροφορίες για το πακέτο μας, όπως το όνομα του project, την έκδοση του Plone που θα χρησιμοποιεί, την πόρτα που θα τρέχει ο server, τον χρήστη admin και τον κωδικό του.

$ cd club2cv.gr/
$ ls
.  ..  bootstrap.py  buildout.cfg  products  README.txt  src  var

Το paster δημιούργησε την παραπάνω βασική δομή για το project μας. Το αρχείο buildout.cfg είναι αυτό που μας ενδιαφέρει και αξίζει να ρίξουμε μια ματιά. Για την ώρα δεν χρειάζεται να πειράξουμε κάτι στο αρχείο αυτό, οπότε ας προχωρήσουμε στο επόμενο βήμα:

$ python2.6 bootstrap.py  # δημιουργεί το περιβάλλον για την εγκατάσταση
$ ./bin/buildout

Από εδώ ξεκινάει το buildout, το οποίο θα αναλάβει να κατεβάσει και να κάνει compile όλα τα πακέτα που θα χρειαστούμε για το Plone site μας! Η διαδικασία αυτή κρατάει λίγη ώρα, οπότε μπορούμε αφήσουμε τον υπολογιστή για 10-20 λεπτά. Αν όλα πάνε καλά και δεν υπάρχει κάποιο πρόβλημα, όταν τελειώσει το buildout θα έχουμε έτοιμο το σύστημα μας.

Στη συνέχεια, τρέχουμε το Plone instance μας στο foreground. Έτσι θα μπορούμε να βλέπουμε πιθανά μηνύματα λάθους, ή πληροφορίες:

$ ./bin/instance fg
2010-12-09 15:09:03 INFO ZServer HTTP server started at Thu Dec  9 15:09:03 2010
    Hostname: 0.0.0.0
    Port: 28080
...
2010-12-09 15:09:12 INFO Zope Ready to handle requests

Το Plone μας ενημερώνει οτι σηκώθηκε στην πόρτα 28080 στο 0.0.0.0, δηλαδή σε όλα τα δικτυακά interface που διαθέτει ο υπολογιστής. Καλή αρχή!

Αν θέλουμε να σταματήσουμε το instance, πατάμε control+c., ενώ με

$ ./bin/instance start

θα ξεκινήσει το instance στο background, σε περίπτωση server πχ, και

$ ./bin/instance stop

θα το σταματήσει.

Ας ανοίξουμε το browser στην IP του συστήματος και το port που ορίσαμε να χρησιμοποιεί το Plone.  Αυτό που έχουμε μπροστά μας είναι μια σελίδα που ενημερώνει οτι το Plone έχει εγκατασταθεί και τρέχει σωστά! Μιας και δεν υπάρχει όμως κάποιο site, η πρώτη μας κίνηση είναι να πατήσουμε το “create a new plone site” και να φτιάξουμε ένα site, αφού κάνουμε πρώτα login. Σε λίγα δευτερόλεπτα ερχόμαστε σε επαφή με το πρώτο μας Plone site!

Τροποποίηση βασικού συστήματος

Η πρώτη σελίδα στο Plone μας βρίσκει λοιπόν συνδεδεμένους σαν admin. Στο κείμενο εισαγωγής υπάρχουν πολλές οδηγίες για το τι μπορούμε να κάνουμε στο site μας. Επιλέγοντας admin και Site Setup, θα δούμε ένα μενου με επιλογές που αφορούν τη λειτουργία του Plone. Από εδώ μπορούμε να ορίσουμε τις ρυθμίσεις που αφορούν τους χρήστες, όπως πχ αν θα μπορούν να κάνουν registration ή όχι, να αλλάξουμε τη γλώσσα του συστήματος, να προσθαφαιρέσουμε πακέτα/προϊόντα, και να επεξεργαστούμε διάφορες άλλες ρυθμίσεις.

Παράδειγμα, για να αλλάξουμε γλώσσα και να έχουμε το site μας στα ελληνικά, επιλέγουμε language, και από εκεί ελληνικά. Από το '’Ρυθμίσεις Αλληλογραφίας’, μπορούμε να ορίσουμε τις ρυθμίσεις για τα email που θα στέλνει το σύστημα και να κάνουμε αντίστοιχες αλλαγές.

Προσθήκη Υλικού

Ωραία λοιπόν, στήσαμε το Plone και κάναμε login, το επόμενο βήμα είναι να προσθέσουμε λίγο περιεχόμενο. Οι βασικοί τύποι του Plone, που καλύπτουν πλήρως τις πιο συνηθισμένες ανάγκες, είναι οι εξής:

  • Αρχείο (File). Μπορεί να είναι ένα οποιοδήποτε αρχείο
  • Γεγονός (Event). Ένα γεγονός, με αρχή, τέλος, τοποθεσία και περιγραφή
  • Είδηση (News Item). Περιλαμβάνει τίτλο, κείμενο, και μια εικόνα που το χαρακτηρίζει
  • Εικόνα (Image).
  • Σελίδα (Page). Μια σελίδα περιλαμβάνει τίτλο και κείμενο
  • Συλλογή (Collection). Μια συλλογή είναι ένας τύπος του Plone που μπορεί να περιλαμβάνει διαφορετικά αντικείμενα, ανάλογα με τα κριτήρια που ορίζουμε
  • Σύνδεσμος (Link)
  • Φάκελος (Folder)

Ας προσθέσουμε για παράδειγμα μια σελίδα. Πατάμε  ‘Add new’ και εμφανίζεται η λίστα με τις επιλογές. Διαλέγουμε ‘Σελίδα’ και μεταφερόμαστε σε μια εύχρηστη φόρμα όπου μπορούμε να θέσουμε τον τίτλο της σελίδας, την περίληψη και φυσικά το κείμενο που θα περιέχει! Ο default editor του Plone είναι ο TinyMCE, ο οποίος έχει τροποποιηθεί ώστε να διευκολύνει  το ανέβασμα φωτογραφιών. Είναι σίγουρο οτι αν κάποιος ξέρει να χρησιμοποιεί προγράμματα όπως το Word ή το OpenOffice, θα λατρέψει αυτό τον editor!

Στη σελίδα της επεξεργασίας αξίζει να παρατηρήσουμε και τα tabs που έχει. Για παράδειγμα, στο tab ‘κατηγοριοποίηση’ μπορούμε να προσθέσουμε τα tags που θέλουμε για το κάθε αντικείμενο που δημιουργούμε. Τα tags είναι κάτι σαν κατηγορίες στις οποίες ανήκει. Αυτό είναι εξαιρετικά χρήσιμο για τη σωστή ταξινόμηση του περιεχομένου, ώστε οι αναζητήσεις να επιστρέφουν όλα τα αντικείμενα (σελίδες, φωτογραφίες, αρχεία) που σχετίζονται με ένα θέμα. Στην καρτέλα ‘Ρυθμίσεις’ μπορούμε να θέσουμε κάποια άλλα κριτήρια για τη σελίδα που δημιουργούμε, όπως το να επιτρέπεται ο σχολιασμός, ή να μη φαίνεται στο navigation, όταν είμαστε στον φάκελο στον οποίο ανήκει.

Τo Plone βλέπει τα πάντα σαν φακέλους και αντικείμενα, με αντίστοιχο τρόπο όπως κάνουν τα λειτουργικά συστήματα. Έτσι, στον αρχικό κατάλογο έχουμε τη βάση, και μέσα μπορούν να υπάρχουν φάκελοι με υποφακέλους και τέλος αρχεία.

Ας επιστρέψουμε όμως στο site του συλλόγου μας. Θα φτιάξουμε ένα φάκελο για την κάθε κεντρική κατηγορία (εκδρομές, φωτογραφίες, η λέσχη) και μέσα στον καθένα θα δημιουργούμε σελίδες ή φακέλους. Πχ μέσα στο φάκελο “φωτογραφίες”, θα φτιάξουμε ένα φάκελο “αυτοκίνητα”, στο οποίο θα βάζουμε φωτογραφίες από αυτοκίνητα 2CV, και στον φάκελο “άτομα” θα βάζουμε προσωπικές φωτογραφίες κτλ. Αξίζει στο σημείο αυτό να αναφερθεί οτι αν για μια σελίδα/φάκελο/φωτογραφία δεν θέλουμε να εμφανίζεται στην πλοήγηση, μπορούμε να το θέσουμε μέσα από τις ρυθμίσεις (αντικείμενο ->ρυθμίσεις ->απόκλιση απο την πλοήγηση).

Αφού δημιουργήσουμε ένα οποιοδήποτε αντικείμενο, πχ φάκελο ή σελίδα, παρατηρούμε στο δεξι μέρος οτι εμφανίζεται με κόκκινο χρώμα ‘κατάσταση Ιδιωτικό’. Αυτό σημαίνει οτι το αντικείμενο θα είναι διαθέσιμο μόνο σε μας και στους διαχειριστές του συστήματος. Αν θέλουμε να δημοσιεύσουμε κάτι και να μπορούν να το δουν όλοι, αλλάζουμε την κατάσταση σε ‘δημοσιευμένο’ πατώντας ‘δημοσίευση’. Το Plone υλοποιεί εξορισμού ένα “workflow” στο οποίο ό,τι δημιουργείται είναι σε κατάσταση ιδιωτική, επιτρέποντας με αυτό τον τρόπο να ελέγχονται τα πάντα προτού δημοσιευθούν Το σύστημα workflow είναι πολύ ισχυρό και τροποποιήσιμο και έτσι μπορούμε να οδηγηθούμε σε εντελώς custom workflows που υποστηρίζουν τις εργασίες που θέλουμε να έχουμε (πχ μια σελίδα δημοσιεύεται μόνο όταν περάσει από μια αλυσίδα reviews, από διαφορετικά άτομα/ρόλους).

Users, News & Events

Όπως έχουμε πιθανόν προσέξει από την κεντρική σελίδα του site μας, υπάρχουν ήδη τρεις φάκελοι, οι φάκελοι Users, News, Events. Ο φάκελος Users περιέχει αυτόματα κάθε χρήστη που δημιουργείται, αν επιτρέπουμε τη δημιουργία χρηστών.

Ο default φάκελος News είναι μια συλλογή αντικειμένων News, και σκοπό έχει να διευκολύνει τους διαχειριστές να δημοσιεύουν νέα και ειδήσεις. Πηγαίνοντας στο φάκελο και πατώντας ‘Add new’ και μετά Είδηση, μπορούμε να δημοσιεύουμε ειδήσεις και νέα, τα οποία αυτόματα εμφανίζονται και στο δεξί portlet, αρκεί φυσικά να τους αλλάξουμε την κατάσταση από ιδιωτικό σε δημόσιο.

Κάτι αντίστοιχο ισχύει και με το φάκελο Events, αλλά για γεγονότα αυτή τη φορά. Ένα γεγονός μπορεί να περιλαμβάνει τίτλο, περιγραφή, ημερομηνία έναρξης και εικόνα. Τα events εξορισμού εμφανίζονται και αυτά στο δεξί portlet.
 
Προσθήκη Φωτογραφιών

Μια βασική λειτουργία του συλλόγου μας θέλουμε να είναι η συλλογή φωτογραφιών. Εύκολα πράγματα για το Plone, η διαχείριση των εικόνων! Από την αρχική σελίδα δημιουργούμε ένα φάκελο με τίτλο 'Φωτογραφίες' ( 'Προσθήκη νέου Αντικειμένου', Φάκελος) και από εκεί μέσα άλλον ένα ‘Αυτοκίνητα’. Εκεί θα προσθέτουμε τις εικόνες που θέλουμε ( 'Προσθήκη νέου Αντικειμένου', Εικόνα).  Το σύστημα κάνει αυτόματα resize των εικόνων, οπότε ό,τι μέγεθος εικόνας και να βάλουμε δεν θα έχουμε πρόβλημα.

Στο φάκελο “φωτογραφίες” λοιπόν έχουμε βάλει μερικές φωτογραφίες, αλλά δεν μας αρέσει ο τρόπος που εμφανίζονται. Το Plone έχει τη λύση για μας, και μέσα απο το φάκελο, πατάμε 'Προβολή', και από εκεί επιλέγουμε 'Προβολή εικονιδίων'. Voila, οι εικόνες εμφανίζονται σε thumbnails: όποιο από αυτά και να πατήσουμε μας εμφανίζει την εικόνα σε μεγαλύτερο μέγεθος (το resize έχει γίνει αυτόματα)!

Τα portlets

Τα portlets είναι τα κουτάκια που βλέπουμε στην αριστερή και δεξιά πλευρά της σελίδας μας. Είναι προαιρετικά, και το Plone μας παρέχει έναν εύκολο μηχανισμό για να τα τροποποιήσουμε. Πατώντας "manage portlets" μπορούμε να προσθέσουμε portlets, να αφαιρέσουμε, ή να αλλάξουμε τη σειρά που εμφανίζονται. Κάποια απο τα portlets που υπάρχουν έτοιμα για μας είναι το ημερολόγιο (calendar portlet), το Γεγονότα, το Login portlet, η Αναζήτηση, το RSS (όπου απλά προσθέτουμε το url του RSS μας και λέμε πόσα items να εμφανίζει) καθώς επίσης το Static portlet, στο οποίο βάζουμε το κείμενο που θέλουμε. Από την κεντρική σελίδα προσθαφαιρούμε portlets που αφορούν όλες τις σελίδες, ενώ για μεμονωμένες αλλαγές πειράζουμε τα portlets της σελίδας που θέλουμε.

Κληρονομικότητα

Είναι χρήσιμο να θυμόμαστε ότι οι ρυθμίσεις που αφορούν ένα φάκελο κληρονομούνται και από τα αντικείμενα του φακέλου. Για παράδειγμα, αν ορίσουμε κάποια portlets να εμφανίζονται σε ένα φάκελο, αυτά θα εμφανίζονται και σε σελίδες εντός του φάκελου. Αντίστοιχα, αν δώσουμε πρόσβαση σε ένα χρήστη να μπορεί να επεξεργάζεται ένα φάκελο, κάτι που είναι εφικτό χάρη στο πολύ καλό σύστημα διαχείρισης χρηστών και γκρουπ, θα μπορεί να πράττει αντίστοιχα και για αντικείμενα εντός του φακέλου.

Προσθήκη products

Υπάρχουν έτοιμα Plone Products, για τις περισσότερες χρήσεις που μπορούμε να φανταστούμε, πχ για τη δημιουργία blogs, συστημάτων GIS, για e-commerce, για την εκπαίδευση και για πολλούς ακόμη τομείς.

Αφού δούμε το product που θέλουμε (plone.org/products) να εγκαταστήσουμε και διαβάσουμε το documentation του, μπορούμε να το προσθέσουμε στο αρχείο buildout.cfg στο αντίστοιχο section και να ξανατρέξουμε το buildout. Π.χ. για τη σελίδα του συλλόγου μας, θέλουμε να εγκαταστήσουμε το carousel (http://plone.org/products/collective.carousel) για τη δημιουργία slideshow από φακέλους, φωτογραφίες κτλ. Στο buildout.cfg, προσθέτουμε το collective.carousel στο section eggs και στο zcml:

eggs =
    Zope2
    Plone
    collective.carousel
zcml =
            collective.carousel

Τρέχουμε το buildout με ορίσματα -vN, v για να είναι σε verbose mode και N για να μην ψάξει νεότερες εκδόσεις των πακέτων που έχουμε ήδη. Αν τρέξουμε το buildout σκέτο, θα κατεβάσει απο την αρχή και θα κάνει compile όλα τα πακέτα!

Βέβαια υπάρχει πάντα η πιθανότητα να πάει κάτι στραβά:

$ ./bin/buildout.cfg -vN
...
Error: There is a version conflict.
We already have: zope.schema 3.5.4
but z3c.form 2.4.1 requires 'zope.schema>=3.6.0'.


Ουπς! Στο σημείο αυτό ήρθαμε αντιμέτωποι με ένα πρόβλημα εκδόσεων! Το plone μας ενημερώνει ότι η έκδοση του πακέτου zope.schema πρέπει να είναι >=3.6.0 αλλά εμείς έχουμε την 3.5.4. Κανένα πρόβλημα, κάνουμε edit το buildout.cfg και στο τέλος προσθέτουμε το

[versions]
zope.schema = 3.6.0


μετά τρέχουμε το buildout με -vN όπως και πριν. Αφού τελειώσει, συνδεόμαστε σαν admin και στο site setup, πατάμε addons και κάνουμε enable το product που μόλις εγκαταστήσαμε.

Στο σημείο αυτό, φτάσαμε στο τέλος. Σε επόμενο άρθρο θα ασχοληθούμε πιο αναλυτικά με τις δυνατότητες του Plone, πώς μπορούμε να δημιουργήσουμε συλλογές (collections) και να δώσουμε τα κριτήρια που θέλουμε, πώς μπορούμε να κάνουμε customize ένα Plone site και να του αλλάξουμε την αισθητική, καθώς επίσης και με πιο πρακτικές συμβουλές για το πώς να εγκαθιστούμε έτοιμα πακέτα (πχ για τη δημιουργία blog, e-commerce κτλ).

Καλή αρχή με το Plone και καλές δημιουργίες!



ΓΙΑ ΝΑ ΠΑΡΕΤΕ ΜΙΑ ΙΔΕΑ
Στο http://plone.net/ μπορούμε να δουμε μια λίστα με projects που χρησιμοποιούν το Plone. Για να πάρει κανείς μια ιδέα των δυνατοτήτων του, μπορεί να επισκεφτεί το site του School of Engineering του Harvard, στο http://www.seas.harvard.edu/ , καθώς επίσης και ένα ελληνικό site, αυτό του ραδιοσταθμού ‘Στο Κόκκινο 105.5 fm’ στο http://stokokkino.gr/ .


ΔΗΜΙΟΥΡΓΙΑ ΧΡΗΣΤΩΝ
Για να επιτρέπουμε σε χρήστες να δημιουργούν τα accounts τους, πηγαίνουμε στο site setup, ρυθμίσεις ασφαλείας, και διαλέγουμε να επιτρέπεται σε όλους τους χρήστες η εγγραφή, να μπορούν να διαλέγουν κωδικούς, και να ενεργοποιούνται οι φάκελοι τους. Μετά από αυτό οι χρήστες θα μπορούν να γράφονται και να έχουν τον προσωπικό τους φάκελο.


PRODUCTS
Ορισμένα χρησιμα products για το Plone:

  •  linguaplone, για μεταφράσεις
  •  collective.blog.star, για δημιουργία blog
  •  plone.app.discussion, για συζητήσεις
  •  qi.portlet.TagClouds, για tag cloud
  •  amberjack - για τη δημιουργία διαδραστικών tutorials,

Βλέπουμε από το plone.org/products το product που μας ενδιαφέρει και το εγκαθιστούμε

ΣΥΝΔΕΣΜΟΙ
[1] plone.org, η επίσημη σελίδα του Plone, με πληροφορίες γύρω απο το Plone, documentation, products για download
[2] buildout.org, η σελίδα του συστήματος buildout
[3] plumi.org, η σελίδα για το Plumi video platform, που είναι φτιαγμένο στο Plone


Ο Μάρκος είναι software engineer και ιδρυτικό μέλος της Unweb.me στην οποία ασχολείται με web applications και ασφάλεια δικτύων. Συμμετέχει στην ομάδα ανάπτυξης του συστήματος Plumi, το οποίο είναι ελεύθερο λογισμικό βασισμένο στο Plone για το διαμοιρασμό βιντεο. Πρόσφατα απέκτησε τον πρώτο του τζουρά!

Φόρουμ
Δώσε αστέρια!