Diving in the code of a CMS

Σχετικά έγγραφα
Σύστημα Διαχείρισης Περιεχομένου

Σύστημα διαχείρισης περιεχομένου (Content Management System)

ΠΑΝΔΠΙΣΗΜΙΟ ΜΑΚΔΓΟΝΙΑ ΠΡΟΓΡΑΜΜΑ ΜΔΣΑΠΣΤΥΙΑΚΧΝ ΠΟΤΓΧΝ ΣΜΗΜΑΣΟ ΔΦΑΡΜΟΜΔΝΗ ΠΛΗΡΟΦΟΡΙΚΗ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΜΕ ΧΡΗΣΗ PHP

Φορολογική Βιβλιοθήκη. Θανάσης Φώτης Προγραμματιστής Εφαρμογών

Πανεπιστήµιο Πειραιώς Τµήµα Πληροφορικής

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΜΣ «ΠΡΟΗΓΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΠΛΗΡΟΦΟΡΙΚΗΣ» ΚΑΤΕΥΘΥΝΣΗ «ΕΥΦΥΕΙΣ ΤΕΧΝΟΛΟΓΙΕΣ ΕΠΙΚΟΙΝΩΝΙΑΣ ΑΝΘΡΩΠΟΥ - ΥΠΟΛΟΓΙΣΤΗ»

Τεχνικός Εφαρμογών Πληροφορικής

Βασικές Έννοιες Web Εφαρμογών

Εγκατάσταση λογισμικού και αναβάθμιση συσκευής Device software installation and software upgrade

Laravel 5. Εισαγωγή στο Laravel PHP framework (5.1 LTS)

The Simply Typed Lambda Calculus

Η βασική εργαλειοθήκη του διαδικτύου

Π Τ Υ Χ Ι Α Κ Η Ε Ρ Γ Α Σ Ι Α

Οδηγίες Αγοράς Ηλεκτρονικού Βιβλίου Instructions for Buying an ebook

Web and HTTP. Βασικά Συστατικά: Web Server Web Browser HTTP Protocol

Σημασιολογικοί Ιστοχώροι: Γιατί Drupal. 18/3/2014 Μυρτώ Αμοργιανού Μονάδα Σημασιολογικού Ιστού

Finite Field Problems: Solutions

ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ HTML

Σεμινάριο joomla! 3. Διοργάνωση: Άλφα Εκπαιδευτική Εισηγητής: Μοτσενίγος Ιωάννης Ηλεκτρονικός Μηχανικός-Σύμβουλος Internet Marketing- Web Designer

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΠΟΛΙΤΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΤΟΜΕΑΣ ΥΔΡΑΥΛΙΚΗΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΙΚΗΣ ΤΕΧΝΙΚΗΣ. Ειδική διάλεξη 2: Εισαγωγή στον κώδικα της εργασίας

Web 論 文. Performance Evaluation and Renewal of Department s Official Web Site. Akira TAKAHASHI and Kenji KAMIMURA

Παλεπηζηήκην Πεηξαηώο Τκήκα Πιεξνθνξηθήο Πξόγξακκα Μεηαπηπρηαθώλ Σπνπδώλ «Πξνεγκέλα Σπζηήκαηα Πιεξνθνξηθήο»

VBA ΣΤΟ WORD. 1. Συχνά, όταν ήθελα να δώσω ένα φυλλάδιο εργασίας με ασκήσεις στους μαθητές έκανα το εξής: Version ΗΜΙΤΕΛΗΣ!!!!

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 133: ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΕΡΓΑΣΤΗΡΙΟ 3 Javadoc Tutorial

Ψηφιακή ανάπτυξη. Course Unit #1 : Κατανοώντας τις βασικές σύγχρονες ψηφιακές αρχές Thematic Unit #1 : Τεχνολογίες Web και CMS

Δημιουργία Λογαριασμού Διαχείρισης Business Telephony Create a Management Account for Business Telephony

Δυναμικές Ιστοσελίδες στο Πανελλήνιο Σχολικό Δίκτυο

Ανάπτυξη διαδικτυακής διαδραστικής εκπαιδευτικής εφαρμογής σε λειτουργικό σύστημα Android

Σχεδιασμός και Ανάπτυξη Ιστότοπων

Συνέδριο ΕΛΛΑΚ Open Source λογισμικό σε εφαρμογές του δημόσιου και ιδιωτικού τομέα

ΤΕΙ ΚΑΒΑΛΑΣ Σχολή Τεχνολογικών Εφαρμογών Τμήμα Βιομηχανικής Πληροφορικής

Δίκτυα Επικοινωνιών ΙΙ: OSPF Configuration

Basic Missions

ΔΕ10: Πληροφοριακά Συστήματα Διοίκησης IΙ Εργαστήριο # 2

Τεχνολογικό Εκπαιδευτικό Ίδρυµα Κρήτης

Dynamic types, Lambda calculus machines Section and Practice Problems Apr 21 22, 2016

Ανάπτυξη πλήρους διαδικτυακής e-commerce εφαρμογής με χρήση του CMS WordPress

ΤΜΗΜΑ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΣΤΗ ΔΙΟΙΚΗΣΗ Κ ΣΤΗΝ ΟΙΚΟΝΟΜΙΑ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΘΕΜΑ : Κατασκευή Ηλεκτρονικού Καταστήματος (e-shop) Σπουδαστές:

ΤΕΙ ΚΑΒΑΛΑΣ. Πτυχιακή εργασία ΕΙΣΑΓΩΓΗ. Μιλτιάδης Κακλαμάνης

ΑΡΧΕς ΛΕΙΤΟΥΡΓΙΑς CMS (Content Management System) ΚΑΙ ΕΦΑΡΜΟΓΗ ΤΟΥς ςε ΜΙΚΡΟΜΕςΑΙΕς ΕΠΙΧΕΙΡΗςΕΙς

JOOMLA CMS ΒΑΣΙΚΗ ΠΑΡΑΜΕΤΡΟΠΟΙΗΣΗ (PART I)

Εφαρµογές WebGIS Open Source

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Σταύρος Καουκάκης Ευτύχιος Βαβουράκης

Οδηγίες χρήσης. Registered. Οδηγίες ένταξης σήματος D-U-N-S Registered στην ιστοσελίδα σας και χρήσης του στην ηλεκτρονική σας επικοινωνία

ΔΙΑΤΜΗΜΑΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ ΣΤΑ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ. Διπλωματική Εργασία

Ελεύθερο Λογισμικό/ Λογισμικό Ανοικτού Κώδικα. Μονάδα Αριστείας Ανοικτού Λογισμικού - Χαροκόπειο Πανεπιστήμιο

HTML HTML5...CSS

Test Data Management in Practice

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. 2 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» Μέρος 1 ο HTML CSS Bootstrap v3.

Πώς μπορεί κανείς να έχει έναν διερμηνέα κατά την επίσκεψή του στον Οικογενειακό του Γιατρό στο Ίσλινγκτον Getting an interpreter when you visit your

Ψηφιακή ανάπτυξη. Course Unit #1 : Κατανοώντας τις βασικές σύγχρονες ψηφιακές αρχές Thematic Unit #1 : Τεχνολογίες Web και CMS

Τεχνολογίες Διαδικτύου. Server Side Scripting I PHP

PHP/MySQL και Project

Προγραμματισμός διαδικτυακών εφαρμογών με PHP

Σύστημα Διαχείρισης Περιεχομένου για τη δημιουργία δυναμικών ιστοσελίδων ΕΛ/ΛΑΚ Ηλιαδάκης Σταμάτης

Αρχές Τεχνολογίας Λογισμικού Εργαστήριο

Λευτέρης Κουμάκης ΠΟΛΥΜΕΣΙΚΕΣ ΥΠΗΡΕΣΙΕΣ ΣΤΗΝ ΥΓΕΙΑ

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 19/5/2007

Συστήματα διαχείρισης περιεχομένου

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 6/5/2006

Terabyte Technology Ltd

Θέματα Προγραμματισμού Διαδικτύου ~ PHP ~

Macromedia DreamWeaver Παρουσίαση εργαλείου σχεδίασης διεπαφής χρήστη

English PDFsharp is a.net library for creating and processing PDF documents 'on the fly'. The library is completely written in C# and based

ΔΟΜΗ. Διδάσκοντες: Π. Αγγελάτος, Δ. Ζήνδρος Επιμέλεια διαφανειών: Δ. Ζήνδρος Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

English PDFsharp is a.net library for creating and processing PDF documents 'on the fly'. The library is completely written in C# and based

28η Συνάντηση Εκπαιδευτικών Δυτικής Μακεδονίας στις ΤΠΕ Φλώρινα 7/4/2013. To wordpress εγκατάσταση στο ΠΣΔ

Θερινό Σχολείο, Ιουλίου slim. Δημοσθένης Νικούδης. Μονάδα Αριστείας ΕΛ/ΛΑΚ ΤΕΙ Αθήνας

ΑΝΑΠΤΥΞΗ ΠΑΙΧΝΙΔΙΟΥ ΣΟΒΑΡΟΥ ΣΚΟΠΟΥ ΓΙΑ ΤΗΝ ΕΚΜΑΘΗΣΗ ΕΝΝΟΙΩΝ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΣΕ JAVA

ΠΡΟΑΙΡΕΤΙΚΑ ΣΕΜΙΝΑΡΙΑ Πληροφορική και Επιστήμη Ηλεκτρονικών Υπολογιστών

ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) ADVANCED σχεδιασμός ιστοσελίδας ΕΚΔΟΣΗ 1.0. Σόλωνος 108,Τηλ Φαξ

ΤΕΣΤ ΠΙΣΤΟΠΟΙΗΣΗΣ ΓΝΩΣΕΩΝ ΚΑΙ ΔΕΞΙΟΤΗΤΩΝ

1. <body> 2. <header> 3. <h1> My Page </h1> 4. </header> 5. <section>

Εισαγωγή στις ΤΠΕ ΙΙ Γιάννης Βρέλλης ΠΤΔΕ-Πανεπιστήμιο Ιωαννίνων. World Wide Web. Παγκόσμιος Ιστός

μ μ «μ»

Σχεδιασμός και Ανάπτυξη Ιστοσελίδων ΙΙ ΙΕΚ ΤΡΙΑΝΔΡΙΑΣ ΓΡΑΦΙΣΤΑΣ ΕΝΤΥΠΟΥ ΚΑΙ ΗΛΕΚΤΡΟΝΙΚΩΝ ΜΕΣΩΝ. CSS - Cascading Style Sheets

PortSip Softphone. Ελληνικά Ι English 1/20

Maxima SCORM. Algebraic Manipulations and Visualizing Graphs in SCORM contents by Maxima and Mashup Approach. Jia Yunpeng, 1 Takayuki Nagai, 2, 1

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

Εισαγωγή στις αρχές του CMS. Joomla Training. Wordpress Training.

derivation of the Laplacian from rectangular to spherical coordinates

Partial Trace and Partial Transpose

SGML (Standard Generalized Markup Language) HTML (HyperText Markup Language) XML (extensible Markup Language)

Overview. Transition Semantics. Configurations and the transition relation. Executions and computation

Ηχογράφηση στο Audacity

Επιμόρφωση Β Επίπεδου Κ.Σ.Ε.: 2 ο ΓΕΛ Ηρακλείου Ειδικότητα: ΠΕ04 Μάθημα: Εγκατάσταση Χρήση CMS Joomla

Οδηγίες χρήσης υλικού D U N S Registered

3.4 SUM AND DIFFERENCE FORMULAS. NOTE: cos(α+β) cos α + cos β cos(α-β) cos α -cos β

How to register an account with the Hellenic Community of Sheffield.

Αρχίζοντας. Το Joomla τρέχει: Στο Joomla μπορούμε να προσθέσουμε επιπλέον λειτουργικότητα, να την επεκτείνουμε δηλαδή (extensions) PHP MySql

The Nottingham eprints service makes this work by researchers of the University of Nottingham available open access under the following conditions.

Microsoft Visual Studio Γιώργος Καµαρινός Developer Programs Marketing Manager Microsoft Hellas

Σταύρος Καουκάκης Ευτύχιος Βαβουράκης

Αρχές Τεχνολογίας Λογισμικού

EPL 603 TOPICS IN SOFTWARE ENGINEERING. Lab 5: Component Adaptation Environment (COPE)

Εισαγωγή στον Παγκόσμιο ιστό και στη γλώσσα Html. Χρ. Ηλιούδης

Instruction Execution Times

Transcript:

Diving in the code of a CMS A short presentation in the internal code of Joomla 1

Αυτή η παρουσίαση θα προσπαθήσει να παρουσιάσει την εσωτερική αρχιτεκτονική ενός CMS (Joomla 2.5) καθώς και τις κυριότερες Web τεχνολογίες που περιλαµβάνει. Ø Σύστηµα Διαχείρισης Περιεχοµένου. Ø Εφαρµογή ανοικτού κώδικα. Ø Καλύπτει µια τεράστια γκάµα αναγκών (από προσωπική ιστοσελίδα µέχρι µεγάλα επαγγελµατικά sites). Ø Εκατοντάδες χιλιάδες εγκαταστάσεις σε όλο τον κόσµο. Ø Μεγάλες δυνατότητες εύκολης επέκτασης µε την χρήση έτοιµων extensions και δυνατότητα ανάπτυξης δικών µας εφαρµογών µε την χρήση έτοιµων βιβλιοθηκών APIs (Application Programming Interfaces). 2

} Τα Συστήµατα Διαχείρισης Περιεχοµένου (ΣΔΠ, Content Management Systems, CMS) είναι διαδικτυακές εφαρµογές που επιτρέπουν την online τροποποίηση του περιεχοµένου ενός διαδικτυακού τόπου. } Οι διαχειριστές µέσω του διαδικτύου ενηµερώνουν το περιεχόµενο στο ΣΔΠ, το οποίο είναι εγκατεστηµένο σ' ένα διακοµιστή. Οι αλλαγές αυτές γίνονται αυτόµατα διαθέσιµες πάλι µέσω του διαδικτύου, σε όλους τους επισκέπτες και χρήστες του διαδικτυακού τόπου. 3

Joomla 2 ο CMS σε µερίδιο αγοράς παγκοσµίως 4

Front-end Οι ιστοσελίδες που βλέπει ο τελικός χρήστης Back-end Διαχειριστικό κοµµάτι Ø Παραµετροποίηση Ø Αλλαγές πραγµατικού χρόνου ØΔιαχείριση περιεχοµένου 5

Joomla Front-end 6

7

Joomla Back-end 8

9

} Index.php: The entry point in every Joomla site. From here starts the execution of the front-end code } Configuration.php: It contains the Joomla class with all the configuration settings of our site } Administrator/index.php: The entry point of the back-end } Robots.txt: We use this file in order to give commands about our site to web robots 10

Το MVC προέρχεται από τις λέξεις Model-View-Controller (τα τρία µέρη από τα οποία αποτελείται αυτό το πρότυπο ανάπτυξης λογισµικού) Ο controller είναι το κοµµάτι του κώδικα που αντιδρά στις ενέργειες του χρήστη. Ελέγχει κάθε page request και ενεργοποιεί το αντίστοιχο model. To model είναι το κοµµάτι του κώδικα που είναι υπεύθυνο να αντλεί τα κατάλληλα δεδοµένα από την βάση δεδοµένων προκειµένου στην συνέχεια να εµφανιστούν στην ιστοσελίδα. Τέλος το view είναι το κοµµάτι του κώδικα που λαµβάνει τα δεδοµένα από το model και τα εµφανίζει στην ιστοσελίδα. 11

Hierarchy of Directories /libraries/joomla Files Factory.php Classes-Objects JFactory Methods getconfig Properties $config 12

If you want to follow the code of a software, command by command, either to fix it, (that is the reason for the name de-bug) or to understand it, you have to install a debugging application. This application not only enables us to run every single command of a very complicated software (like Joomla), but it also gives us the opportunity to watch every variable we want, to display software dependencies and to follow the program logic. A powerful debugging application is the Eclipse and specifically the Eclipse for PHP Developers Version: Helios (remember that Joomla is built in PHP) and can be freely downloaded from the following link: http://www.eclipse.org/downloads /packages/release/helios/sr2 13

14

15

} <?php } // Set flag that this is a parent file. } define('_jexec', 1); } define('ds', DIRECTORY_SEPARATOR); } if (file_exists(dirname( FILE ). '/defines.php')) { } include_once dirname( FILE ). '/defines.php';} } if (!defined('_jdefines')) } { } define('jpath_base', dirname( FILE )); } require_once JPATH_BASE.'/includes/defines.php'; } } } require_once JPATH_BASE.'/includes/framework.php'; 16

} // Instantiate the application. } $app = JFactory::getApplication('site'); } // Initialise the application. } $app->initialise(); } // Route the application. } $app->route(); } // Dispatch the application. } $app->dispatch(); } // Render the application. } $app->render(); } // Return the response. } echo $app; 17

} stage 1: Basic definitions and class loadings } stage 2: Instantiation } stage 3: Initialization } stage 4: Routing } stage 5: Dispatching } stage 6: Rendering } stage 7: Output 18

} Html (HyperText Markup Language) } Php (Object Oriented Language) } Mysql (open-source relational database management) } Css (Cascading Style Sheets) } Javascript jquery (Interpreted programming language) } Xml (Extensible Markup Language) Xampp (A completely free, easy to install Apache distribution containing MariaDB, PHP, and Perl) 19

20

<!DOCTYPE html> <html> <head> <meta name="viewport" content="initial-scale=1.0, user-scalable=no"> <meta charset="utf-8"> <link rel="stylesheet" type="text/css" href="../modules/clients/css/clients.css"> <title>geocoding service</title> <style> html, body { height: 100%; margin: 0px; padding: 0px; } </style> <script> src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false&hl=el&language=el&region=el"></script> </head> <body> <?php include effectiveapps_db."/connect_inc.php"; include_once effectiveapps_db."/db_functions.php"; include_once effectiveapps_objects."/client.php"; ob_start(); session_start(); if (isset($_get["client"])) { $client = $_GET["client"]; $_SESSION['client'] = $client; ob_end_clean(); } 21

Εύχοµαι να φτάσαµε σε αυτή την διαφάνεια! (γιατί σηµαίνει κυρίως δύο πράγµατα: ØΌτι πρόλαβα να την παρουσιάσω ØΌτι το κοινό έχει αυξηµένες αντοχές) Ευχαριστώ πολύ!!! Κώστας Δρούγκας kostasdrougkas@gmail.com 22