Authentication Manager ζην Joomla CMS

77
Πηςσιακή επγαζία με θέμα: Authentication Manager ζην Joomla CMS Διζηγηηήρ: Παπαδοςπάκηρ Γεώπγιορ ποςδαζηήρ: Μπαπούνηρ Ιωάννηρ

Transcript of Authentication Manager ζην Joomla CMS

Διζηγηηρ:
2.1. Αλαθνξ
2.2. Οδεγεο εγθαηζηαζεο
2.2.2.3. Βκα 3ν : δεηα Υξζεο GNU/GPL………………………….12
2.2.2.4. Βκα 4ν : Ρπζκζεηο Βζεο Γεδνκλσλ………………………13
2.2.2.5. Βκα 5ν : Ρπζκζεηο FTP………………………………………..14
2.2.2.6. Βκα 6ν : Βαζηθο Ρπζκζεηο…………………………………..15
2.2.2.7. Βκα 7ν : Σινο……………………………………………16
3. Κεθλαιο 3 ο : Γνωπιμα -Δξοικεωζη με ηο Joomla
3.1. Backend………………………………………………...………………………….17
3.2. Frontend………………………………………………..………………………….24
4.3. Πξζζεηα (Plugins)………………………………………………………………31
5.1. Υξζηκα ζηνηρεα – ιεπηνκξεηεο………………………………...…………….33
5.2. Δγθαηζηαζε – ξζκηζε επθηαζεο…………………………………………….34
5.3. Αλιπζε δηεπαθλ………………………………………………..…………….41
5.3.1. Γηαρεηξηζηο Δμππεξεηεηλ…………………….…….…………………….43
5.3.3. Γηαρεηξηζηο Πεξηνξηζκλ…………………………..……….…………..46
5.3.4. Γηαρεηξηζηο Παξακηξσλ………………………………………………..47
5.3.6. Γηεπαθ πξζζεζεο λνπ αληηθεηκλνπ ζην Γηαρεηξηζη Πεξηνξηζκλ……49
6. Κεθλαιο 6 ο : Authentication Manager ζηην ππξη
6.1. Γηεπαθο…………………………………………………………………………..50
6.1.2. Γνθηκ εηζδνπ ρξζηε ρξεζηκνπνηληαο εμππεξεηεη…………..…56
6.1.3. Απελεξγνπνεζε αληηθεηκλνπ ελζκαηνο δηαρεξηζεο CAS Login...63
6.1.4. „Παδνληαο κε ηνπο πεξηνξηζκνο………………………………………65
3
7. Κεθλαιο 7 ο : Μεληη - ανλςζη ζημανηικν ζςναπηζεων ηηρ επκηαζηρ
7.1. generateServer()…………………………………………….…..…………..68
4
ΠΡΟΛΟΓΟ
Με ηελ επξεα αλπηπμε ηνπ δηαδηθηνπ θαη ησλ εθαξκνγλ ηνπ, ε δπλαηηεηα ησλ
ρξεζηλ λα επηθνηλσλνλ θαη λα αληαιιζνπλ απςεηο κεηαμ ηνπο, γηλε πνην
επξεα. Ββαηα γηα ιγνπο αζθαιεαο θαη ρη κλν, πξπεη νη εθαξκνγο λα γλσξδνπλ
ηνπο ρξζηεο. ηζη απ πνι λσξο ρξεηζηεθε νη δηαδηθηπαθο εθαξκνγο λα
απνζεθενπλ ηα ραξαθηεξηζηηθ ησλ ρξεζηλ ηνπο. Υαξαθηεξηζηηθ ηα νπνα
θλνπλ ηελ εθαξκνγ πνην ερξεζηε θαη πξνζηη ζηνλ ρξζηε. πλζσο δεηνληαη
απ ηνλ ρξζηε λα λνκα (username) θαη λαο θσδηθο (password) γηα ηελ
απζεληηθνπνεζ ηνπ θαη ελ ζπλερεα ηα ινηπ ζηνηρεα ηνπ.
Σα ηειεπηαα ρξληα αλαπηρζεθε ε δπλαηηεηα λα ππξρεη λα κνλαδηθ username
θαη password ηα νπνα ζα ρξεζηκνπνηνληαη απ νπνηαδπνηε δηαδηθηπαθ εθαξκνγ.
Απη ρεη πινπνηεζε ζκεξα εθηο ησλ ιισλ θαη κε ηελ ρξζε ηνπ OpenID, πνπ
λαο ρξζηεο απνθη κηα κνλαδηθ „ηαπηηεηα ηελ νπνα κπνξε λα ρξεζηκνπνηζεη
γηα λα ρεη πξζβαζε ζε εθαξκνγο νη νπνεο ππνζηεξδνπλ ηελ ρξζε OpenID.
Δπνκλσο ε γενικ ιδα ελαη λα κελ αζρνινκαη εγ ζαλ εθαξκνγ κε ηελ
απζεληηθνπνεζε ηνπ ρξζηε αιι λα ηνλ παξαπκπσ θπνπ αιιν, π.ρ. ζε θπνηνλ
εμππεξεηεη εηο ηνλ νπνν ηα ζηνηρεα ηνπ ελαη εδε γλσζη, ηζη μεθεγσ απ ην
θνκκηη ηεο απζεληηθνπνεζεο θαη ηα πξγκαηα γλνληαη πνην εθνια γηα κλα.
Απη ξρεηαη ε επθηαζε Authentication Manager λα θλεη. Με ιγα ιγηα, παξρεηαη
ε δπλαηηεηα ζηνλ δηαρεηξηζη κηαο ηζηνζειδαο βαζηζκλεο ζην δεκνθηιο joomla
λα παξαπκπεη ηνλ ρξζηε ζε λαλ εμσηεξηθ εμππεξεηεη γηα ηελ απζεληηθνπνεζ
ηνπ. θνπο ηεο ιεο απηο εμσηεξηθο παξαπνκπο δη απζεληηθνπνεζε ελαη
θαζαξ θαη κλν ε απζεληηθνπνεζε ηνπ ρξζηε. Γελ παξρνληαη ινηπ ζηνηρεα ηνπ
ρξζηε (ιισζηε πνηνο εμππεξεηεηο δδεη ηζη απι ηα ζηνηρεα ησλ ρξεζηλ ηνπ).
5
Κεθιαην 1 ν : Δηζαγωγ
Ζ επθηαζε Authentication Manager αλαπηρζεθε κε ζθνπ λα δδεη ηελ δπλαηηεηα
ζηνλ δηαρεηξηζη ηεο βαζηζκλεο ζε joomla (θδνζε 1.5.x) ηζηνζειδαο ηνπ, ηελ
δπλαηηεηα λα ρξεζηκνπνηζεη εμσηεξηθνο εμππεξεηεηο απζεληηθνπνεζεο
(external authentication servers (SSO)) γηα ηελ εζνδν ρξεζηλ ζηελ ηζηνζειδα,
πσο CAS, openid, AOL OpenAuth, Google AuthSub, Microsoft Windows Live
Contacts API, Yahoo BBAuth θ.η.ι.
1.1. Πεπιγπαθ πηςσιακρ επγαζαρ
Ζ επθηαζε ζα απνηειεηαη απ ελζκαηα, ελζκαηα δηαρεξηζεο θαη πξζζεηα
(modules ,components, plugins "δνκηθ" ζηνηρεα joomla) αλαπηπγκλα κε PHP ηα
νπνα ζα θλνπλ ρξζε βζεο δεδνκλσλ SQL.
ια ηα components, plugins θαη modules ηα νπνα ζα αλαπηπρζνλ ζα ζβνληαη ηηο
αξρο ζρεδαζεο θαη πξνγξακκαηηζκν ηνπ joomla (MVC - Model View Controller).
Ο δηαρεηξηζηο ζα ρεη ηελ δπλαηηεηα λα εηζγεη θαηλνξγηνπο εμππεξεηεηο ζην
ζζηεκα, λα επηιγεη πνηνη απ απην ζα ελαη ελεξγν θαη γηα πνηνπο ρξζηεο, θαζο
επζεο θαη ηελ δπλαηηεηα λα επηηξπεη απνξξπηεη ηελ εζνδν ελο ρξζηε ζηελ
ηζηνζειδα εμεηδνληαο ηελ IP δηεζπλζ ηνπ. Σν δην ζα κπνξε λα θλεη θαη γηα
ηνπο ηπρλ ππξρνληεο ιινπο δηαρεηξηζηο.
1.2. κοπρ πηςσιακρ επγαζαρ
θνπο ηεο πηπρηαθο εξγαζαο ελαη ε παξνπζαζε κηαο ρξζηκεο επθηαζεο γηα ην
joomla ε νπνα αλαπηρζεθε ζαλ αληηθεκελν απαζριεζεο ηεο πξαθηηθο κνπ
ζθεζεο ζην παλεπηζηκην La Rochelle ηεο Γαιιαο. ηρνο ββαηα, ελαη λα γλεη
ζν πνην δπλαηλ αλαιπηηθηεξε παξνπζαζε ηεο επθηαζεο θαη ε ελζξξπλζε ησλ
αλαγλσζηλ λα ηελ ρξεζηκνπνηζνπλ.
Κεθιαην 2 ν : Δξγαιεα
Δηο ην θεθιαην 2 ν ζα γλσξζνπκε ηα εξγαιεα κε ηα νπνα ζα βνεζεζνκε δη ηελ
αλπηπμε ηνπ Authentication Manager extension, θαζο επζεο θαη ηελ δηαδηθαζα
εγθαηζηαζεο θαη ιεγρν ζσζηο ιεηηνπξγαο ησλ.
2.1 . Αναθοπ επγαλεων
2.1.1 Xampp 1.7.1.
Σν XAMPP ελαη λα ρξζηκν βνζεκα πνπ καο δλεη ηελ δπλαηηεηα λα θλνπκε
ηνλ ππνινγηζη καο λα web server θαη ρη κλν. Δκεο ζα ρξεζηκνπνηζνπκε ηελ
θδνζε 1.7.1 γηα windows δη ηελ εγθαηζηαζε ηνπ Joomla θαη ελ ζπλερεα ηεο
επθηαζο καο.
MySQL 5.1.33
PHP 5.2.9
phpMyAdmin 3.1.3.1
Mercury Mail Transport System 4.62
Απ απη ζα ρξεηαζηνκε θπξσο ηνλ Apache (εμππεξεηεη εηο ηνλ νπννλ ζα
αλεβζνπκε ηελ Joomla ηζηνζειδα καο), ηελ MySQL (λα πνι γξγνξν θαη δπλαη,
ζζηεκα δηαρεξηζεο βζεσλ δεδνκλσλ. Μηα βζε δεδνκλσλ καο επηηξπεη λα
απνζεθενπκε , λα αλαδεηκε , λα ηαμηλνκνκε θαη λα αλαθαινκε ηα δεδνκλα
απνηειεζκαηηθ. Χξεζηκνπνηεηαη εθηελο απ ην Joomla) θαη ηελ PHP (κηα γιζζα
script απ ηελ πιεπξ ηνπ δηαθνκηζη , ζρεδηαζκλε εηδηθ γηα ην Web.
Χξεζηκνπνηεηαη θαη απη εθηελο απ ην Joomla)
Θα ρξεζηκνπνηζνπκε επζεο, θαη ην phpMyAdmin (λα ζλνιν απ php scripts κε ην
νπνν δηαρεηξηδκαζηε ηηο βζεηο δεδνκλσλ πνπ ρνπκε, κζσ web) θπξσο γηα ηνλ
ιεγρν ησλ εηζαρζλησλ δεδνκλσλ.
ην Joomla κπνξνκε λα δεκνζηεζνπκε ζην δηαδθηπν κηα πξνζσπηθ ηζηνζειδα,
αιι θαη λαλ νιθιεξν εηαηξηθ δηθηπαθ ηπν.
Ζ εθαξκνγ ελαη αλνηθην θδηθα ( Open Source ) θαη ε ρξζε ηνπ ελαη απνιησο
δσξελ. Δκεζα ειεζεξνη λα ην ρξεζηκνπνηζνπκε, λα ην ηξνπνπνηζνπκε θαη λα
δηεξεπλζνπκε ηηο δπλαηηεηο ηνπ ρσξο λα πξπεη λα πιεξζνπκε θπνηα δεηα
ρξζεο.
To Authentication Manager extension απνηειεηαη απ δνκηθ ζηνηρεα ηνπ Joomla
(components, plugins, modules), ζπλεπο δη ιγνπο αζθαιεαο ρξεζηκνπνηνκε ηελ
ηειεπηαα θδνζε 1.5.10. (ηειεπηαα θδνζε ηελ ζηηγκ ζπγγξαθο πηπρηαθο), ε νπνα
πεξηρεη ζεκαληηθο αλαβαζκζεηο αζθαιεαο απ ηελ πξνεγνκελε θδνζε 1.5.9 (66
ζην ζλνιν).
ηζηνζειδα www.apachefriends.org ηξρνπκε ην αξρεν, θαηπηλ ζα καο δεηζεη λα
θθειν γηα λα θλεη εγθαηζηαζε ησλ απαξαηεησλ αξρεσλ, ηα νπνα ρξεηδνληαη
γηα ηελ ιεηηνπξγα ηνπ. ζησ ηη θλνπκε ηελ εγθαηζηαζε ζηνλ ζθιεξ δζθν C
ζηνλ θθειν xampp (C:\xampp). Ζ εγθαηζηαζε ζα δεκηνπξγζεη - ηνπνζεηζεη
απηκαηα ηα απαξαηεηα αξρεα γηα ηελ νκαι ιεηηνπξγα ηνπ Apache εμππεξεηεη
θαη ησλ ιισλ επηκξνπο πξνγξακκησλ (PHP, MySQL).
Καηπηλ ην ηειεπηαν πξγκα πνπ πξπεη λα θλνπκε ελαη λα ηξμνκε ην αξρεν
setup_xampp.bat γηα λα εγθαηαζηζεη – ζεηξεη ηελ εθαξκνγ. Δλ ζπλερεα ην κλν
ην νπνν κλεη ελαη λα μεθηλζνκε ηνλ Apache εμππεξεηεη θαη ηελ MySQL (Γελ
ρξεηδεηαη ηπνηα ιιν). Απη ζα γλεη αλ ηξμνπκε ηα αξρεα apache_start.bat θαη
mysql_start.bat ελαιιαθηηθ ην xampp-control.exe κε ην νπνν κπνξνκε λα ηα
μεθηλζνπκε.
Γηα λα πηζηνπνηζνπκε ηελ ιεηηνπξγα ηνπο, ηξρνπκε κηα εθαξκνγ θπιινκεηξεη,
ζηελ δηθ καο πεξπησζε απηλ ηεο Mozilla Foundation.
ηελ κπξα δηεζπλζεο εηζαγγνπκε: http://localhost/xampp
Αλ ια πλε θαι ζα δνκε ηελ παξαθησ εηθλα.
λα ζεκαληηθ βκα ελαη λα αιιμνπκε ηηο πξνεπηιεγκλεο ξπζκζεηο αζθαιεαο
ηνπ xampp. Δκεο εδ δελ ζα ην θλνπκε δη ηνλ απι ιγν ηνπ ηη δνπιενπκε
ηνπηθ ( localhost ).
πλεπο ν ρξζηεο ηεο MySQL ελαη ν root κε θελ ην πεδν θσδηθν (Θα ρξεηαζηε
απ ην Joomla).
10
2.2.2 Δγκαηζηαζη Joomla
Γηα ηελ εγθαηζηαζε ηνπ Joomla ζηνλ ηνπηθ εμππεξεηεη πνπ ρνπκε εδε
εγθαηαζηζεη (βιπεηε παξαπλσ 2.2.1 Δγκαηζηαζη Xampp), ζα ρξεηαζηνκε ην
αξρεν Joomla_1.5.10-Stable-Full_Package.zip ην νπνν ζα ην βξνκε ζηελ
ηζηνζειδα http://www.joomla.org/download.html. Μιηο κε επηηπρα απνθηζνπκε
ην αξρεν, ην απνζπκπηδνπκε (παξρεηε δπλαηηεηα απνζπκπεζεο κζσ ησλ
windows) θαη ηνπνζεηνκε ηα δεδνκλα ηνπ κζα ζε λαλ θθειν ηνλ νπνν
νλνκαηδνπκε joomla10. Καηπηλ ηνλ ηνπνζεηνκε ζηνλ θθειν htdocs ν νπννο
βξζθεηαη ζηνλ θθειν πνπ θλακε ηελ εγθαηζηαζε ηνπ Xampp.
Δλ ζπλερεα ζηελ κπξα δηεζπλζεο ηνπ θπιινκεηξεη καο εηζαγγνπκε:
http://localhost/joomla10
Δπεηδ ελαη ε πξηε θνξ πνπ ηξρνπκε ην joomla πξπεη λα ην εγθαηαζηζνπκε –
αξρηθνπνηζνπκε. Γη ηνηνηνλ ιγν θαινκαζηε λα εθηειζνπκε θπνηα βκαηα
εγθαηζηαζεο πσο απη θαλνληαη ζηνλ θπιινκεηξηε θαη εηο ηελ παξαθησ
εηθλα.
ΒΗΜΑ 1ν : Δπηινγ Γιζζαο
Δπηιγνπκε ηελ γιζζα ηεο αξεζθεαο καο θαη θλνπκε θιηθ ζην θνπκπ κε
ηελ ιμε Επμενο και με να βελκι δπλα ηου.
Δλ ζπλερεα κεηαθεξκαζηε ζην βκα 2 ν
ΒΗΜΑ 2ν : Πξνιεπηηθο ιεγρνο
Γλεηε γεληθο ιεγρνο γηα ηα ζηνηρεα πνπ ρξεηδεηαη ην joomla δη ηε ζσζη
ιεηηνπξγα ηνπ (πσο PHP, MySQL θ.η.ι.).
Κλνπκε θιηθ ζην θνπκπ Επμενο θαη κεηαθεξκαζηε ζην βκα 3 ν .
12
Γηαβδνπκε ηελ δεηα ρξζεο ηνπ πξνγξκκαηνο.
Κλνπκε θιηθ ζην θνπκπ Επμενο θαη κεηαθεξκαζηε ζην βκα 4 ν .
13
ηηο Βαζηθο Ρπζκζεηο
o Δηζαγγνπκε ζην πεδν λνκα Γηαθνκηζη: localhost
o Δηζαγγνπκε ζην πεδν λνκα Υξζηε: root
o Σν πεδν Κσδηθο ην αθλνπκε θελ
o Δηζαγγνπκε ζην πεδν λνκα Βζεο Γεδνκλσλ: joomla10
Γελ ρξεηδεηαη λα πεηξμνπκε ηηο Πξνρσξεκλεο Ρπζκζεηο.
Αλ εηζαγγνπκε ηα πξναλαθεξζληα δεδνκλα ζα ρνπκε ηελ εμο εηθλα:
Κλνπκε θιηθ ζην θνπκπ Επμενο θαη κεηαθεξκαζηε ζην βκα 5 ν .
14
Γελ ρξεηδεηαη λα εηζαγγνπκε ηπνηα.
Κλνπκε θιηθ ζην θνπκπ Επμενο θαη κεηαθεξκαζηε ζην βκα 6 ν .
15
Καινκαζηε λα εηζαγγνπκε θπνηα δεδνκλα γηα ηελ βαζηθ ιεηηνπξγα ηεο
ελ Joomla βαζηζκλεο ηζηνζειδαο καο.
Δηο ην πεδνλ νομα Ιζηηοπος εηζαγγνπκε ην λνκα ηεο ηζηνζειδαο καο.
Δηο ην πεδνλ Η διεθςνζη ηλεκηπονικο ηασςδπομεος ζαρ εηζαγγνπκε ηελ
ειεθηξνληθ καο δηεζπλζε, ( επεηδ εκεο δνπιενπκε ηνπηθ ζα ρξεζηκνπνηζνπκε
κηα ηπραα ).
Δηο ην πεδνλ Κωδικρ Γιασειπιζη εηζαγγνπκε λαλ θσδηθ ηνλ νπνν ζα
ρξεζηκνπνηνκε γηα λα ζπλδεζνκε σο δηαρεηξηζηο ζηελ ηζηνζειδα καο.
Δηο ην πεδνλ Δπιβεβαωζη Κωδικο Γιασειπιζη επαλεηζαγγνπκε ηνλ παξαπλσ
θσδηθ.
Γηα ιγνπο επρξεζηαο ζα θλνπκε θιηθ θαη ζην θνπκπ πνπ ιεη Διζαγωγ
Δνδεικηικο Πεπιεσομνος ηζη ζηε απηκαηα ην Joomla λα καο θηημεη κηα
αξρηθ ζειδα.
Δθζνλ πξαγκαηνπνηζνπκε ηα παξαπλσ βιπνπκε ηα εμο:
Κλνπκε θιηθ ζην θνπκπ Επμενο θαη κεηαθεξκαζηε ζην βκα 7 ν .
16
Μρξη ηξα, ια θαι. ρνπκε εγθαηαζηζεη κε επηηπρα ην Joomla.
Σν κλν πνπ κλεη, πσο καο δεηεηε (βιπεηε παξαπλσ εηθλα), ελαη λα
δηαγξςνπκε ηνλ θθειν INSTALLATION , ν νπννο βξζθεηαη εηο ηνλ θθειν
εγθαηζηαζεο ηνπ Joomla (ζπκεζεηε θθεινο εγθαηζηαζεο: joomla10). Μιηο ην
πξμνπκε, κπνξνκε λα ηδνκε ηελ ηζηνζειδα καο θλνληαο θιηθ ζην θνπκπ πνπ
ιεη Ηζηηνπνο λα ζπλδεζνκε σο δηαρεηξηζηο εηο ηελ ζειδα δηαρεηξζεσο ηνπ
Joomla.
ηε ζπλρεηα εηο ην κεθλαιο 3 ο ζα εμνηθεησζνκε κε ηελ δηαρεξηζε ηνπ Joomla
ζνλ αθνξ ην θνκκηη ηνπ δηαρεηξηζη, εηο βαζκ ηηνην ζηε λα κπνξνκε λα
εγθαζηζηνκε θαη δηαρεηξηδκαζηε ηα ιεγκελα extensions ( επεθηζεηο ), πξγκα πνπ
ζα καο θλεη γλζηεο ηεο εγθαηζηαζεο θαη δηαρεξηζεο ηεο δηθο καο επθηαζεο,
Authentication Manager.
3.1. Backend
Σν Administrator Back-end (πλαθαο ειγρνπ δηαρεηξηζη) ελαη ε πξηε ζειδα πνπ
εκθαλδεηαη κιηο ζπλδεζε λαο Γιασειπιζηρ (Administrator), Τπεπδιασειπιζηρ
(Super Administrator) λαο Γιεςθςνηρ (Manager) ζηνλ πλαθα ειγρνπ.
Σν πξαγκαηηθ πιηθ ηνπ Πλαθα ειγρνπ, ην νπνν κπνξε λα δεη θζε εππεδν
δηαρεηξηζη, εμαξηηαη απ ην εππεδν πξζβαζεο. λαο Γηεπζπληο βιπεη ιηγηεξα
απ λα Γηαρεηξηζη πνπ κε ηε ζεηξ ηνπ βιπεη ιηγηεξα απ λα Τπεξδηαρεηξηζη ν
νπννο βιπεη ηα πληα. ην ζεκεν απη λα αλαθξνπκε ηη ζα αζρνιεζνκε κε ηελ
δηαρεξηζε ηνπ ηζηηνπνπ σο Τπεξδηαρεηξηζηο.
Αο ζπλδεζνκε ινηπλ ζηνλ πλαθα ειγρνπ.
Δηζαγγνπκε εηο ηελ κπξα δηεζπλζεο ηνπ θπιινκεηξηε καο ηελ δηεζπλζε:
http://localhost/joomla10/administrator. Καηπηλ ζα κεηαθεξζνκε ζε κηα ηζηνζειδα
εηο ηελ νπναλ θαινκαζηε λα εηζαγγνπκε ηα ζηνηρεα δηαρεηξηζη (username θαη
password), ηα νπνα ηα εηζαγγακε, γηα πξηε θνξ, θαη ηελ δηξθεηα
εγθαηζηαζεο ηνπ Joomla.
Δηζαγγνπκε σο Username: admin (ην joomla εμ’ νξηζκν θηηρλεη ηνλ δηαρεηξηζη
σο admin).
Δηζαγγνπκε σο Password: (ηνλ θσδηθ πνπ δζακε θαη ηελ εγθαηζηαζε ηνπ
joomla).
Παξαθησ βιπνπκε ηελ ζειδα εηζαγσγο Username θαη Password. Θα
παξαηεξζεηε ηη ππξρεη λα κελν επηινγο Language. Αθλνπκε απη πνπ ρεη
(default) δεδνκλνπ ηη δελ ρνπκε εγθαηαζηζεη θπνηα ιιε γιζζα.
Δλ ζπλερεα θλνπκε θιηθ-παηκε (απ εδ θαη ζην εμο „παηκε) ην θνπκπ πνπ
βιπνπκε απ θησ (Login). Αλ ηα ζηνηρεα πνπ εηζαγγακε ελαη ζσζη ηηε
κεηαθεξκαζηε ζηε ζειδα ηνπ πλαθα ειγρνπ.
19
Απη πνπ ρξεηδεηαη λα γλσξδνπκε, ελαη πσο ζα βιπνπκε ηνπο ρξζηεο νη νπννη
ελαη απνζεθεπκλε ζην joomla, πσο ζα εγθαζηζηνκε, βιπνπκε θαη δηαρεηξηδκαζηε
επεθηζεηο θαη πσο βιπνπκε ηα ελζκαηα δηαρεξηζεο (components, γηα ηα νπνα ζα
κηιζνπκε ζην επκελν θεθιαην Γλσξηκα – Μειηε δνκηθλ ζηνηρεσλ joomla).
Γηα λα δνκε ηνπο ρξζηεο, επηιγνπκε κε ην δεθηε ηνπ πνληηθην, απ ηελ κπξα
ηνπ κελν, ην πξην κελν Site θαη ελ ζπλερεα παηκε ην ππνκελν User Manager.
ειδα User Manager:
20
Δδ βιπνπκε ηνπο ρξζηεο ηνπο νπννπο „γλσξδεη ην joomla. πσο βιπνπκε ρεη
λαλ ρξζηε ηνλ Administrator, ν νπννο ελαη Logged In, Enabled, θαη ρεη
εππεδν πξζβαζεο Super Administrator.
Γελ καο ελδηαθξεη γεληθο ε ρξζε ηνπ User Manager, δηηη δελ ζα ρξεηαζηε λα
δεκηνπξγζνπκε θαηλνξγην ρξζηε (ρη ηνπιρηζηνλ απ απη ηε ζειδα αιι κζσ
θδηθα), απι κλν ε ιεηηνπξγα Enabled, Group θαη Delete.
Γηα λα δνκε ηα δηαζζηκα ελζκαηα δηαρεξηζεο, επηιγνπκε κε ην δεθηε ηνπ
πνληηθην, απ ηελ κπξα ηνπ κελν, ην κελν Components.
Απ εδ ζα βιπνπκε – δηαρεηξηδκαζηε ην λζεκα δηαρεξηζεο πνπ ζα
δεκηνπξγζνπκε.
Γηα λα θλνπκε εγθαηζηαζε απεγθαηζηαζε επεθηζεσλ, επηιγνπκε κε ην δεθηε
ηνπ πνληηθην, απ ηελ κπξα ηνπ κελν, ην κελν Extensions θαη ελ ζπλερεα
παηκε ην ππνκελν Install/Uninstall.
ηε ζειδα πνπ εκθαλδεηαη
παηκε ην θνπκπ Αλαδηεζε, βξζθνπκε ην αξρεν ηεο επθηαζο καο (ζπλζσο ζε
ζπκπηεζκλε κνξθ, zip, tar ) θαη ελ ζπλερεα παηκε ην δηπιαλ θνπκπ Upload File
& Install. Απη ηαλ, αλ ε επθηαζ καο ελαη ζσζη δνκεκλε
(προγραμμαηιζηικ) ζα εγθαηαζηαζε κηα ραξ.
Γηα λα δνκε - δηαρεηξηζηνκε ηα ελζκαηα (βιπεηε θεθιαην Γλσξηκα – Μειηε
δνκηθλ ζηνηρεσλ joomla), επηιγνπκε κε ην δεθηε ηνπ πνληηθην, απ ηελ κπξα
ηνπ κελν, ην κελν Extensions θαη ελ ζπλερεα παηκε ην ππνκελν Module
Manager.
22
Γηα λα δνκε - δηαρεηξηζηνκε ηα πξζζεηα (βιπεηαη θεθιαην Γλσξηκα – Μειηε
δνκηθλ ζηνηρεσλ joomla), επηιγνπκε κε ην δεθηε ηνπ πνληηθην, απ ηελ κπξα
ηνπ κελν, ην κελν Extensions θαη ελ ζπλερεα παηκε ην ππνκελν Plugin
Manager.
23
ηε ζειδα πνπ εκθαλδεηαη
βιπνπκε ηα δηαζζηκα πξζζεηα. πσο ζσο πξνζμαηε, ζηελ αξρ ηεο ιζηαο
παξαηεξνκε ηζζεξα authentication πξζζεηα (ηα νπνα ρνπλ λα θλνπλ κε ηελ
ηαπηνπνεζε ελο ρξζηε ζνλ αθνξα ην backend αιι θαη ην frontend):
Authentication - Joomla, Authentication – LDAP, Authentication – OpenID θαη
Authentication – Gmail, πσο ζσο ρεηε θαηαιβεη, εκεο ζα πξνζζζνπκε λα δηθ
καο authentication πξζζεην, ην Authentication Manager (ην νπνν ζα δηαρεηξδεηαη
πνιιο authentication κεζδνπο).
Απη ζνλ αθνξ ην θνκκηη ηεο δηαρεξηζεο ηνπ backend. Πεξηζζηεξα ζα δνκε
θαη ηελ δηξθεηα εγθαηζηαζεο θαη ειγρνπ ηεο επθηαζο καο.
Αο πεξζνπκε λα γλσξζνπκε ιγα πξγκαηα γηα ην frontend.
24
3.2. Frontend
Σν Front-end ελαη ε θπξσο ζειδα πνπ εκθαλδεηαη ζε λαλ επηζθπηε ηνπ ηζηηνπν
καο αιι θαη ελο ζπλδεδεκλνπ ρξζηε.
Αο δνκε ινηπλ ην frontend, ην νπνν ελαη νπζηαζηηθ ε ηζηνζειδα καο.
Δηζαγγνπκε εηο ηελ κπξα δηεζπλζεο ηνπ θπιινκεηξεη καο ηελ δηεζπλζε:
http://localhost/joomla10/ .
Βιπνπκε ηελ αξρηθ καο ζειδα λα ρεη θπνηα ηνηκα κελν θπνηα ξζξα θ.η.ι.
Απη δηηη θαη ηελ εγθαηζηαζε ηνπ joomla παηζακε ην θνπκπ Διζαγωγ
Δνδεικηικο Πεπιεσομνος.
Απη πνπ καο ελδηαθξεη απ ην frontend ελαη ην ζεκεν εηο ην νπννλ γλεηε εηζαγσγ
ζηνηρεσλ απ λαλ ρξζηε γηα εζνδν (login) ζηελ ηζηνζειδα καο. ηελ ζπγθεθξηκλε
πεξπησζε, απη βξζθεηαη θησ αξηζηεξ.
ξνληαο ηελ ζειδα πξνο ηα θησ, ζα ην εληνπζνπκε.
Απη ηα νιγα πξνο ην παξλ δη ην frontend. Πεξηζζηεξα ζα δνκε αθηνπ
εγθαηαζηζνπκε ηελ επθηαζ καο.
Τλορ 3ος Κευαλαος.
Δηο ηνηνην θεθιαην κζακε πο λα δηαρεηξηδκαζηε ην backend θαη ην frontend ηνπ
joomla. Πξγκα πνι ζεκαληηθ δηηη δελ θηλεη κλν λα θηημνπκε ηελ επθηαζ
καο, αιι λα ηελ θλνπκε θαη ιεηηνπξγηθ ρξεζηκνπνηληαο θπνηα ζηληαξ ηνπ,
ζνλ αθνξ ζηνλ ζρεδηαζκ αιι θαη ζην πξνγξακκαηηζκ ηεο επθηαζο καο.
Δηο ην επκελν Κεθιαην 4 ν ζα κζνπκε ηη ελαη ηα δνκηθ ζηνηρεα ηνπ joomla θαη
πσο απη ελαη δνκεκλα θαη επζεο απ ηη απνηεινληαη.
26
4.1. Δλζκαηα (Modules)
Σα ενθμαηα ελαη ηα αληηθεκελα κζα απ ηα νπνα κπνξνκε λα εκθαλζνπκε
πιεξνθνξεο ζηελ ηζηνζειδα καο (εηο ην frontend αιι πσο ζα δνκε θαη ζην
backend).
Κζε νθεμα πξπεη λα ρεη κνλαδηθ λνκα, ζηε λα κελ κπεξδεεηαη κε ηα ιια.
Σα ενθμαηα κπνξνλ λα πεξηρνπλ κελν, δηαθεκζεηο, ςεθνθνξεο, ιιεο
εθαξκνγο πεξηερκελν ηεο επηινγο καο.
ζησ ηη ζινπκε λα δεκηνπξγζνπκε λα νθεμα κε ην λνκα externallogin. Απη
ζα απνηειεηαη απ αξρεα php, html, xml κζα ζε λα θθειν κε λνκα ηεο κνξθο
mod_xxxxx πνπ xxxxx ην λνκα ηνπ ενθμαηορ. ηελ πεξπησζ καο externallogin.
ρνπκε ζπλεπο λαλ θθειν κε νλνκαζα mod_externallogin. Απη κσο δελ
θηλεη γηα λα ρνπκε λα λζεκα πσο θαηαιαβαλεηε. Πξπεη λα πξνζζζνπκε
θπνηα αξρεα κε θδηθα ηα νπνα ζα θλνπλ ηε ιεηηνπξγα πνπ ζινπκε.
ηζη ινηπλ πξπεη λα πξνζζζνπκε λα αξρεν php κε νλνκαζα
mod_externallogin.php, ε νλνκαζα ελαη ζεκαληηθ θαη θαι ελαη λα ρνπκε ην
δην λνκα κε ην λνκα ηνπ ελζκαηνο.
27
Mod_externallogin.php:
Κθε απσεο ηος ηο οποο βπζκεηαι ζηο joomla πππει να σει ηο εξρ κομμηι
κδικα
<?php defined('_JEXEC') or die('Restricted access'); ?>
ν ιγνο, δη ηελ κε αλγλσζε ηεο ζειδαο απεπζεαο απ ηνλ θπιινκεηξεη.
ηλαη απαξαηεην γηα ηελ αζθιεηα ηνπ ηζηηνπνπ.
Απ θησ πεξηρνληαη ππ ηελ κνξθ ζρνισλ ηεο php γιζζαο πξνγξακκαηηζκν,
ρξζηκα ζηνηρεα γηα ην νθεμα. Απ θησ κπνξνκε λα πξνζζζνπκε θδηθα html,
javascript θπζηθ θαη php. λα ελδηαθξνλ ραξαθηεξηζηηθ ελαη ηη κπνξνκε λα
ρνπκε θαη ιια αξρεα κε θδηθα php απ ηα νπνα ζα κπνξνκε δηαβδνπκε
δεδνκλα, λα εθηεινκε ζπλαξηζεηο θαη νησ θαζεμο. ην παξδεηγκ καο
28
θαινκε ην αξρεν helper.php (πεξηρεη θπνηεο ρξζηκεο θιζεηο) ην νπνν βξζθεηαη
ζηνλ δην θθειν κε ην mod_externallogin, δειαδ ηνλ θθειν ηνπ ελζκαηο καο.
require_once (dirname(__FILE__) . DS . 'helper.php');
λα ιιν βαζηθ αξρεν, ην νπνν ελαη απαξαηεην γηα ηελ εγθαηζηαζε ηνπ
ελζκαηνο ελαη λα αξρεν xml κε λνκα mod_externallogin.xml (πσο θαηαιβαηε
κρξη ηξα, ρξεζηκνπνηνκε ην λνκα ηνπ ελζκαηνο). Απη ην αξρεν παξρεη
δεδνκλα ζην joomla ζηνηρεα ηνπ δεκηνπξγν (λνκα, ειεθηξνληθ δηεζπλζε, θ.η.ι.),
ζηνηρεα ηνπ ελζκαηνο (λνκα, θδνζε, πεξηγξαθ θ.η.ι.) θαη θπνηα πνην ζεκαληηθ
ζηνηρεα πσο, πνηα αξρεα θαη πνπ, λα θλεη εγθαηζηαζε.
Σν xml αξρεν ρξεζηκνπνηε xml markup γιζζα.
Γηα πεξηζζηεξεο πιεξνθνξεο: http://www.w3.org/XML/
Mod_externallogin.xml
Γηα λα κπνξζνπκε λα εγθαηαζηζνπκε ην λζεκ καο πξπεη λα ζπκπηζνπκε ηα
δεδνκλα ζε λα αξρεν zip, tar, tgz θ.η.ι. πσο ρεη πξνιερζε ζε πξνεγνκελν
θεθιαην. Ολνκαηδνπκε ην αξρεν mod_externallogin.tgz. Σξα εκαζηε ηνηκνη λα
εγθαηαζηζνπκε ην λζεκ καο ζην joomla.
4.2. Δλζκαηα Γηαρεξηζεο (Components)
Σα ενθμαηα διασεπιζηρ ελαη ελζκαηα ηα νπνα ελαη νξαη κλν ζην δηαρεηξηζη
θαη ζε ζνπο ρνπλ πξζβαζε ζηελ πεξηνρ δηαρεξηζεο (πλαθαο ειγρνπ).
ζησ λα λζεκα δηαρεξηζεο κε λνκα ελζκαηνο externallogin.
Απη „πξπεη λα απνηειεηαη απ λα αξρεν admin.externallogin.php (ην νπνν
ειγρεη λα δεη αλ ππξρεη ην controller.php πνπ κε ηε ζεηξ ηνπ, καο παξαπκπεη ζην ηη
ζα δνκε, ‘views’, κιηο θνξηζνπκε ην λζεκα δηαρεξηζεο απ ηνλ πλαθα ειγρνπ).
Απη ηα views πεξηρνληαη ζε λαλ θθειν views (πληα κζα ζην θθειν ελζκαηνο
δηαρεξηζεο). Απη ελαη θθεινη κε αξρεα php, js, css θαη ηη ιιν ρξεηαζηνκε γηα
ηελ ζσζη εκθληζε ησλ δεδνκλσλ καο ζηνλ πλαθα ειγρνπ.
Πξπε&et