Patrick Lobacher and Michael Schams. Angeliki Plati. 29/June/2015 Creative Commons BY-NC-SA 3.0



Σχετικά έγγραφα
Patrick Lobacher και Michael Schams. Angeliki Plati. 28/November/2015 Creative Commons BY-NC-SA 3.0

Patrick Lobacher and Michael Schams. Angeliki Plati. 10/October/2015 Creative Commons BY-NC-SA 3.0

Patrick Lobacher and Michael Schams. Angeliki Plati. 03/November/2015 Creative Commons BY-NC-SA 3.0

Patrick Lobacher and Michael Schams. Angeliki Plati. 18/May/2015 Creative Commons BY-NC-SA 3.0

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

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

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

SOAP API. Table of Contents

Εργαστήριο 9. Styling with Javascript

Special edition of the Technical Chamber of Greece on Video Conference Services on the Internet, 2000 NUTWBCAM

Κατανεμημένα Συστήματα. Javascript LCR example

Σημασιολογικός Ιστός (Semantic Web) - XML

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

CHAPTER 25 SOLVING EQUATIONS BY ITERATIVE METHODS

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

Instruction Execution Times

Exercises 10. Find a fundamental matrix of the given system of equations. Also find the fundamental matrix Φ(t) satisfying Φ(0) = I. 1.

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

Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων. Εξάμηνο 7 ο

CYTA Cloud Server Set Up Instructions

A browser-based digital signing solution over the web

Βαζηθό κάζεκα γηα ην ArcGIS

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

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

Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων. Εξάμηνο 7 ο

Συνοπτικός Οδηγός Χρήσης του Moodle για τον Καθηγητή

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

Econ 2110: Fall 2008 Suggested Solutions to Problem Set 8 questions or comments to Dan Fetter 1

Γιάννης Σαμωνάκης. 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 4 - PHP)

Εισαγωγή στη Βιοπληροφορική

ΕισαγωγήστουςΗ/Υ. PHP Hypertext Preprocessor

Στο εστιατόριο «ToDokimasesPrinToBgaleisStonKosmo?» έξω από τους δακτυλίους του Κρόνου, οι παραγγελίες γίνονται ηλεκτρονικά.

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ USE INSTRUCTIONS

Case 1: Original version of a bill available in only one language.

Standard Template Library (STL) C++ library

Open eclass Πλατφόρμα Ασύγχρονης Τηλεκπαίδευσης

Αντικειμενοστρεφής Προγραμματισμός

derivation of the Laplacian from rectangular to spherical coordinates

ΤΕΙ Σερρών Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πληροφορικής & Επικοινωνιών. Επώνυμο Όνομα: Α.Μ. : Εξάμηνο : Αίθουσα

Στο εργαστήριο θα μελετηθούν: Διδάσκων: Γιώργος Χατζηπολλάς. Εργαστήριο 2: Εργαλεία Συστήματος UNIX. Ομάδες για παρουσίαση

Homework 3 Solutions

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

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

ΠΡΟΣΟΧΗ: Οι απαντήσεις πολλαπλής επιλογής µόνο πάνω στο ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ

Πρόβλημα 1: Αναζήτηση Ελάχιστης/Μέγιστης Τιμής

Εισαγωγή στο MATLAB. Κολοβού Αθανασία, ΕΔΙΠ,

2 Composition. Invertible Mappings

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

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

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

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client

TaxiCounter Android App. Περδίκης Ανδρέας ME10069

Section 8.3 Trigonometric Equations

Block Ciphers Modes. Ramki Thurimella

ΕΠΛ 012. JavaScripts

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Βάσεις Δεδομένων (4 ο εξάμηνο) Εργαστήριο MySQL #2

Finite Field Problems: Solutions

(C) 2010 Pearson Education, Inc. All rights reserved.

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

Μορφοποίηση υπό όρους : Μορφή > Μορφοποίηση υπό όρους/γραμμές δεδομένων/μορφοποίηση μόο των κελιών που περιέχουν/

TEC410 Ανάπτυξη Δικτυακών Τόπων (Δ εξάμηνο)

ΔΗ Μ Ι Ο ΥΡ Γ Ι Α W I K I με τ η χρήση τ η ς υπ ηρεσίας h t t p : / id ot.com /

Using the QGIS Browser

Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων. Εξάμηνο 7 ο

Ρυθμίσεις Ψηφιακής Υπογραφής για έγγραφα μορφής PDF στο ΕΚΕΦΕ Δημόκριτος

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

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

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

Quick Installation Guide

Χρειάζεται να φέρω μαζί μου τα πρωτότυπα έγγραφα ή τα αντίγραφα; Asking if you need to provide the original documents or copies Ποια είναι τα κριτήρια

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

Numerical Analysis FMN011

Section 7.6 Double and Half Angle Formulas

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

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

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

Προσωπική Aνάπτυξη. Ενότητα 2: Διαπραγμάτευση. Juan Carlos Martínez Director of Projects Development Department

Δομές Δεδομένων - Εργαστήριο 2. Λίστες

Αντώνης Χρυσόπουλος Στέλιος Μόσχογλου Θεοδόσης Σουργκούνης ΔΟΜΗΣΗ ΚΩΔΙΚΑ. Μαθαίνω παίζοντας

Approximation of distance between locations on earth given by latitude and longitude

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

Exercises to Statistics of Material Fatigue No. 5

HOMEWORK 4 = G. In order to plot the stress versus the stretch we define a normalized stretch:

The Simply Typed Lambda Calculus

6. ΓΕΩΓΡΑΦΙΚΑ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ

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

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

ANSWERSHEET (TOPIC = DIFFERENTIAL CALCULUS) COLLECTION #2. h 0 h h 0 h h 0 ( ) g k = g 0 + g 1 + g g 2009 =?

Μηχανική Μάθηση Hypothesis Testing

Συστήματα Διαχείρισης Βάσεων Δεδομένων

Congruence Classes of Invertible Matrices of Order 3 over F 2

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

TEC510 Ανάπτυξη Δικτυακών Τόπων (Ε εξάμηνο) Διδάσκων: Ανδρέας Γιαννακουλόπουλος Επιστημονικός συνεργάτης Εργαστηρίου: Γιώργος Μηλιώτης

Galatia SIL Keyboard Information

EE512: Error Control Coding

ΑΓΓΛΙΚΑ Ι. Ενότητα 7α: Impact of the Internet on Economic Education. Ζωή Κανταρίδου Τμήμα Εφαρμοσμένης Πληροφορικής

Leaflet Web Maps with qgis2leaf

Στην τεχνολογία των CSS, οι κανόνες στυλ (style

b. Use the parametrization from (a) to compute the area of S a as S a ds. Be sure to substitute for ds!

Transcript:

Σύνοψη των νέων λειτουργιών, αλλαγών και βελτιώσεων Δημιουργήθηκε από: Patrick Lobacher and Michael Schams Μετάφραση στα Ελληνικά από: Angeliki Plati 29/June/2015 Creative Commons BY-NC-SA 3.0

Σύνοψη κεφαλαίου Εισαγωγή Διεπαφή Χρήστη Backend TSconfig & TypoScript Ριζικές Αλλαγές Extbase & Fluid Κατηργημένες/Αφηρημένες Μέθοδοι Πηγές και Συγγραφείς

Εισαγωγή Εισαγωγή Τα Γεγονότα

Εισαγωγή Τα Γεγονότα Ημερομηνία Δημοσίευσης: 16 Ιουνίου 2015 Τύπος Δημοσίευσης: Sprint Release Οραμα: Αγκαλιάζουμε, Καινοτομούμε, Παραδίδουμε Κύριος Στόχος: Frontend

Εισαγωγή Προδιαγραφές Συστήματος PHP*: MySQL: v5.5.0 - v5.6.x v5.5.x - v5.6.x (no strict mode) Χωρητ. Δίσκου: τουλάχιστον 200 MB Ρυθμίσεις PHP: memory_limit >= 128M max_execution_time >= 240s η επιλογή disable-ipv6 δεν πρέπει να χρησιμοποιείται Για το backend απαιτείται η χρήση IE >= 9 ή οποιουδήποτε άλλου σύγχρονου browser *)Περαιτέρω λεπτομέρειες: PHP Minimum Requirements for TYPO3 CMS 7

Εισαγωγή Χρονοδιάγραμμα Ανάπτυξης και Δημοσίευσης

Εισαγωγή TYPO3 CMS - Πλάνο Εκτιμώμενες ημερομηνίες δημοσίευσης και ο πρωταρχικός τους στόχος: 7.0 02/Δεκ/2014 Λεπτομερής εξέταση του Backend Vol 1 v7.1 24/Φεβ/2015 Core Cleanup & Streamlining v7.2 28/Απρ//2015 Frontend v7.3 09/Ιουν/2015 Package Ecosystem, Composer and Extension Handling v7.4 04/Αυγ/2015 Λεπτομερής εξέταση του Backend Vol 2 v7.5 29/Σεπ/2015 (δεν έχει ακόμα οριστεί...) v7.6 xx/xxx/2015 TYPO3 CMS 7 LTS (Long Term Εκδοση) https://typo3.org/typo3-cms/roadmap/ http://typo3.org/news/article/embrace-and-innovate-typo3-cms-7/

Εισαγωγή Εγκατάσταση Επίσημη διαδικασία εγκατάστασης σε Linux/Mac OS X (DocumentRoot για παράδειγμα /var/www/site/htdocs): $ cd /var/www/site $ wget --content-disposition get.typo3.org/7.3 $ tar xzf typo3_src-7.3.0.tar.gz $ cd htdocs $ ln -s../typo3_src-7.3.0 typo3_src $ ln -s typo3_src/index.php $ ln -s typo3_src/typo3 $ touch FIRST_INSTALL Συμβολικοί σύνδεσμοι για Microsoft Windows: Χρησιμοποιήστε junction για Windows XP/2000 Χρησιμοποιήστε mlink για Windows Vista and Windows 7

Εισαγωγή Αναβάθμιση σε TYPO3 CMS 7.x Η αναβάθμιση είναι δυνατή μόνο από TYPO3 CMS 6.2 LTS Η έκδοση TYPO3 CMS < 6.2 πρέπει να αναβαθμιστεί πρώτα σε TYPO3 CMS 6.2 LTS Οδηγίες αναβάθμισης: http://wiki.typo3.org/upgrade#upgrading_to_7.3 Επίσημος οδηγός TYPO3 TYPO3 Installation and Upgrading: http://docs.typo3.org/typo3cms/installationguide Γενική προσέγγιση: Ελέγξτε τις ελάχιστες απαιτήσεις συστήματος (PHP, MySQL, etc.) Κάνετε ανασκόπηση του deprecation_*.log στην παλιά υπόσταση της TYPO3 Ανανεώστε όλες τις extensions στην τελευταία τους έκδοση

Εισαγωγή Αναβάθμιση σε TYPO3 CMS 7.x Γενική προσέγγιση - Συνέχεια: Κάνετε deploy τα νέα πηγαία αρχεία και τρέξτε τον Οδηγό Αναβάθμισης Κάνετε ανασκόπηση του startup module για τους χρήστες backend (προαιρετικά)

Διεπαφή Χρήστη Backend Κεφάλαιο 1: Διεπαφή χρήστη Backend

Διεπαφή Χρήστη Backend Τίτλος σελίδας στα Δομοστοιχεία Page και List Οι χρήστες μπορούν να επεξεργαστούν τους τίτλους σελίδας στα δομοστοιχεία Page και List

Διεπαφή Χρήστη Backend Install Tool: Διαγραφή Επεξεργασμένων Αρχείων Σε κάθε εκκαθάριση, το Install Tool παρέχει τώρα μια νέα συνάρτηση για την αφαίρεση των επεξεργασμένων αρχείων (π.χ. μικρογραφίες εικόνων) από το FAL. Αυτό είναι χρήσιμο όταν οι ρυθμίσεις που σχετίζονται με τα γραφικά έχουν αλλάξει ή για να αναγκάσει όλες τις εικόνες να αναδημιουργηθούν μετά από μία ενημέρωση του GraphicsMagick/ImageMagick.

Διεπαφή Χρήστη Backend Νέο Πεδίο στα Μεταδεδομένα FAL Το πεδίο Copyright έχει προστεθεί στα μεταδεδομένα της εγγραφής FAL (επέκταση συστήματος: φιλεμεταδατα).

TSconfig & TypoScript Κεφάλαιο 2: TSconfig & TypoScript

TSconfig & TypoScript Νέα Συνάρτηση stdwrap strtotime Η νέα TypoScript stdwrap ιδιότητα strtotime επιτρέπει την μετατροπή των μορφοποιημένων ημερομηνιών σε Unix timestamps, π.χ. για την πραγματοποίηση υπολογισμών με ημερομηνίες Εγκυρες τιμές είναι το 1 ή οποιοδήποτε string χρόνου το οποίο χρησιμοποιείται ως η πρώτη παράμετρος της συνάρτησης PHP strtotime() date_as_timestamp = TEXT date_as_timestamp { value = 2015-04-15 strtotime = 1 } next_weekday = TEXT next_weekday { data = GP:selected_date strtotime = + 2 weekdays strftime = %Y-%m-%d }

TSconfig & TypoScript GPmerged στις Συνθήκες Η χρήση του ΓΠ σε TypoScript συνθήκες επιστρέφει την POST μεταβλητή, μόνο αν το request περιέχει και τις δύο, POST και GET μεταβλητές Η νέα επιλογή GPmerged ενώνει και τις δύο μεθόδους και επιστρέφει το αποτέλεσμα [globalvar = GPmerged:tx_demo foo = 1] page.90 = TEXT page.90.value = DEMO [global]

TSconfig & TypoScript Νέες Επιλογές για το stdwrap.case Οι επιλογές uppercamelcase και lowercamelcase έχουν προστεθεί στο stdwrap.case Παράδειγμα: tt_content = CASE tt_content { key.field = CType my_custom_ctype =< lib.usercontent my_custom_ctype { file = EXT:site_base/Resources/Private/Templates/SomeOtherTemplate.html settings.extraparam = 1 } default =< lib.usercontent default { file = TEXT file.field = CType file.stdwrap.case = uppercamelcase file.wrap = EXT:site_base/Resources/Private/Templates/.html } }

TSconfig & TypoScript Η Ιδιότητα integrity Προστέθηκε για Αρχεία JavaScript (1) Η ιδιότητα integrity συμπεριλήφθηκε στις προσθήκες JavaScript αρχείων, έτσι ώστε ένα συγκεκριμένο SRI hash (κλειδί κατακερματισμού) να επιτρέπει την επαλήθευση των πόρων (SRI: Sub-Resource Integrity (Ακεραιότητα Υπό-Πόρων), βλ. επόμενη διαφάνεια) Αυτό επηρεάζει τις TypoScript PAGE ιδιότητες page.includejslibs, page.includejsfooterlibs, includejs και includejsfooter Παράδειγμα: page { includejs { jquery = https://code.jquery.com/jquery-1.11.3.min.js jquery.external = 1 jquery.disablecompression = 1 jquery.excludefromconcatenation = 1 jquery.integrity = sha256-7lkwezqtdpefelxczzls6wax5ff13zz83lyo2/ujj7g= } }

TSconfig & TypoScript Η Ιδιότητα integrity Προστέθηκε για Αρχεία JavaScript (2) Η SRI είναι μια προδιαγραφή της W3C που επιτρέπει στους web developers να διασφαλίσουν ότι οι πόροι που βρίσκονται σε τρίτους (third-party) servers δεν έχουν αλλοιωθεί με Δημιουργία hashes (κλειδιών κατακερματισμού) ακεραιότητας: Επιλογή 1: https://srihash.org Επιλογή 2: χρησιμποποιήστε την ακόλουθη εντολή shell cat FILENAME.js openssl dgst -sha256 -binary openssl enc -base64 -A Διαβάστε περισσότερα: http://www.w3.org/tr/sri/

Ριζικές Αλλαγές Κεφάλαιο 3: Ριζικές Αλλαγές

Ριζικές Αλλαγές Ενσωμάτωση Symfony/Console στον CommandController (1) Ο CommandController χρησιμοποιεί τώρα εσωτερικά τη Symfony/Console και παρέχει διάφορες μεθόδους: TableHelper outputtable($rows, $headers = NULL) DialogHelper select($question, $choices, $default = NULL, $multiselect = false, $attempts = FALSE) ask($question, $default = NULL, array $autocomplete = array()) askconfirmation($question, $default = TRUE) askhiddenresponse($question, $fallback = TRUE) askandvalidate($question, $validator, $attempts = FALSE, $default = NULL, array $autocomplete = NULL) askhiddenresponseandvalidate($question, $validator, $attempts = FALSE, $fallback = TRUE)

Ριζικές Αλλαγές Ενσωμάτωση Symfony/Console στον CommandController (2) ProgressHelper progressstart($max = NULL) progressset($current) progressadvance($step = 1) progressfinish() (βλ. τις νέες διαφάνειες για παραδείγματα κώδικα)

Ριζικές Αλλαγές Ενσωμάτωση Symfony/Console στον CommandController (3) <?php namespace Acme\Demo\Command; use TYPO3\CMS\Extbase\Mvc\Controller\CommandController; class MyCommandController extends CommandController { public function mycommand() { // render a table $this->output->outputtable(array( array( Bob, 34, m ), array( Sally, 21, f ), array( Blake, 56, m ) ), array( Name, Age, Gender )); // select $colors = array( red, blue, yellow ); $selectedcolorindex = $this->output->select( Please select one color, $colors, red ); $this->outputline( You choose the color %s., array($colors[$selectedcolorindex])); [...]

Ριζικές Αλλαγές Ενσωμάτωση Symfony/Console στον CommandController (4) [...] // ask $name = $this->output->ask( What is your name?. PHP_EOL, Bob, array( Bob, Sally, Blake )); $this->outputline( Hello %s., array($name)); // prompt $likesdogs = $this->output->askconfirmation( Do you like dogs? ); if ($likesdogs) { $this->outputline( You do like dogs! ); } // progress $this->output->progressstart(600); for ($i = 0; $i < 300; $i ++) { $this->output->progressadvance(); usleep(5000); } $this->output->progressfinish(); } }?>

Ριζικές Αλλαγές API Δρομολόγησης του Backend (1) Το Backend login έχει αναδιαμορφωθεί πλήρως και ένα νέο API εισαχθεί Η OpenID φόρμα έχει εξαχθεί και χρησιμοποιεί τώρα το νέο API (το ανεξαρτητοποιεί από τις κεντρικές Core κλάσεις) Το κόνσεπτ του νέου backend login βασίζεται σε login providers (παροχείς login), οι οποίοι μπορούν να εγγραφούν στο αρχείο ext_localconf.php ως εξής: $GLOBALS[ TYPO3_CONF_VARS ][ EXTCONF ][ backend ][ loginproviders ][1433416020] = [ provider => \TYPO3\CMS\Backend\LoginProvider\UsernamePasswordLoginProvider::class, sorting => 50, icon-class => fa-key, label => LLL:EXT:backend/Resources/Private/Language/locallang.xlf:login.link ];

Ριζικές Αλλαγές API Δρομολόγησης του Backend (2) Οι επιλογές ορίζονται ως εξής: provider: όνομα του παροχέα login, ο οποίος πρέπει να υλοποιεί TYPO3\CMS\Backend\LoginProvider\LoginProviderInterface sorting: ταξινόμηση των συνδέσμων στους πιθανούς παροχείς login, στην οθόνη login icon-class: font-awesome όνομα εικονιδίου για τον σύνδεσμο στην οθόνη login label: ετικέτα για τον παροχέα login στην οθόνη login

Ριζικές Αλλαγές API Δρομολόγησης του Backend (3) Η LoginProviderInterface περιέχει μόνο τη μέθοδο public function render(standaloneview $view, PageRenderer $pagerenderer, LoginController $logincontroller); Οι παράμετροι ορίζονται ως εξής: $view: Η Fluid StandaloneView, η οποία αποδίδει την οθόνη του login. Πρέπει να θέσετε το αρχείο template και ίσως να προσθέσετε μεταβλητές στη view σύμφωνα με τις ανάγκες σας. $pagerenderer: Το στιγμιότυπο του PageRenderer παρέχει την δυνατότητα να προστεθούν οι απαραίτητες πόροι JavaScript. $logincontroller: Το στιγμιότυπο του LoginController.

Ριζικές Αλλαγές API Δρομολόγησης του Backend (4) Το template πρέπει να περιέχει <f:layout name=login> και <f:section name=loginformfields> (γιαπεδία φόρμας): <f:layout name="login" /> <f:section name="loginformfields"> <div class="form-group t3js-login-openid-section" id="t3-login-openid_url-section"> <div class="input-group"> <input type="text" id="openid_url" name="openid_url" value="{presetopenid}" autofocus="autofocus" placeholder="{f:translate(key: openid, extensionname: openid )}" class="form-control input-login t3js-clearable t3js-login-openid-field" /> <div class="input-group-addon"> <span class="fa fa-openid"></span> </div> </div> </div> </f:section>

Ριζικές Αλλαγές CategoryRegistry με Νέες Επιλογές Η μέθοδος CategoryRegistry->addTcaColumn έχει πλέον επιλογές γις να θέτει l10n_mode και l10n_display: \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::makeCategorizable( $extensionkey, $tablename, categories, array( l10n_mode => string (keyword), l10n_display => list of keywords ) );

Ριζικές Αλλαγές Sprites σε Backend Δομοστοιχεία Τα backend δομοστοιχεία (κύρια δομοστοιχεία όπως το Web καθώς και υπό-δομοστοιχεία όπως η Filelist) μπορούν τώρα να χρησιμοποιούν sprites ως εικονίδια (μόνο sprite εικονίδια γνωστά στην TYPO3 είναι διαθέσιμα!) Παράδειγμα: \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addModule( web, layout, top, \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extPath($_EXTKEY). Modules/Layout/, array( script => _DISPATCH, access => user,group, name => web_layout, configuration => array( icon => module-web ), labels => array( ll_ref => LLL:EXT:cms/layout/locallang_mod.xlf, ), ) );

Ριζικές Αλλαγές FormEngine NodeFactory API (1) Εϊναι τώρα εφικτό να εγγραφούν νέοι κόμβοι και να αντικατασταθούν οι ήδη υπάρχοντες $GLOBALS[ TYPO3_CONF_VARS ][ SYS ][ formengine ][ noderegistry ][1433196792] = array( nodename => input, priority => 40, class => \MyVendor\MyExtension\Form\Element\T3editorElement::class ); Το παραπάνω παράδειγμα καταχωρεί μια νέα κλάση MyVendor\MyExtension\Form\Element\T3editorElement ως κλάση απόδοσης του τύπου TCA input, η οποία πρέπει να υλοποιεί τη διεπαφή TYPO3\CMS\Backend\Form\NodeInterface Το κλειδί του πίνακα είναι η Unix χρονοσφραγίδα της ημερομηνίας καταχώρησης του στοιχείου

Ριζικές Αλλαγές FormEngine NodeFactory API (2) Σε περιπτώσεις όπου πολλαπλά στοιχεία καταχώρησης έχουν προστεθεί για τον ίδιο τύπο, χρησιμοποιείται εκείνο με την υψηλότερη προτεραιότητα (0 το 100) Ενας νέος τύπος TCA mpore i na kataqwrhje i ws ex hs: TCA columns => array( bodytext => array( config => array( type => text, rendertype => 3dCloud, ), ), ) ext_localconf.php $GLOBALS[ TYPO3_CONF_VARS ][ SYS ][ formengine ][ noderegistry ][1433197759] = array( nodename => 3dCloud, priority => 40, class => \MyVendor\MyExtension\Form\Element\ShowTextAs3dCloudElement::class );

Ριζικές Αλλαγές Σήμα postprocessmirrorurl Το σήμα postprocessmirrorurl έχει μεταφερθεί σε νέα κλάση BREAKING CHANGE! Το ακόλουθο παράδειγμα κώδικα λαμβάνει υπόψιν την έκδοση της TYPO3: $signalslotdispatcher->connect( version_compare(typo3_version, 7.0, < )? TYPO3\\CMS\\Lang\\Service\\UpdateTranslationService : TYPO3\\CMS\\Lang\\Service\\TranslationService, postprocessmirrorurl, Vendor\\Extension\\Slots\\CustomMirror, postprocessmirrorurl );

Extbase & Fluid Chapter 4: Extbase & Fluid

Extbase & Fluid ActionMenuItemGroupViewHelper (1) Using this ViewHelper, option groups can be used in the backend select field, which controls which action is selected Example: <f:be.menus.actionmenu> <f:be.menus.actionmenuitem label="default: Welcome" controller="default" action="index" /> <f:be.menus.actionmenuitem label="community: get in touch" controller="community" action="index" /> <f:be.menus.actionmenuitemgroup label="information"> <f:be.menus.actionmenuitem label="php Information" controller="information" action="listphpinfo" /> <f:be.menus.actionmenuitem label="documentation" controller="information" action="documentation" /> <f:be.menus.actionmenuitem label="hooks" controller="information" action="hooks" /> <f:be.menus.actionmenuitem label="signals" controller="information" action="signals" /> <f:be.menus.actionmenuitem label="xclasses" controller="information" action="xclass" /> </f:be.menus.actionmenuitemgroup> </f:be.menus.actionmenu>

Extbase & Fluid ActionMenuItemGroupViewHelper (2) Example on previous slide results in the following output:

Extbase & Fluid Template Support for FlashMessagesViewHelper The FlashMessagesViewHelper supports templates now New attribute as allows to specify a variable name, which can be used within the ViewHelper s child elements to access the flash messages Example: <f:flashmessages as="flashmessages"> <ul class="myflashmessages"> <f:for each="{flashmessages}" as="flashmessage"> <li class="alert {flashmessage.class}"> <h4>{flashmessage.title}</h4> <span class="fancy-icon">{flashmessage.message}</span> </li> </f:for> </ul> </f:flashmessages> Note: option rendermode is deprecated now

Extbase & Fluid New Properties of cobject FLUIDTEMPLATE (1) cobject FLUIDTEMPLATE has been extended with templaterootpaths and templatename It is possible to set a template name and when rendering the template this name is used together with the set format to find the template in the given templaterootpaths templaterootpaths features the same fallback logic as layoutrootpath and partialrootpath templatename: string/stdwrap templaterootpaths: array of file paths with EXT: prefix support

Extbase & Fluid New Properties of cobject FLUIDTEMPLATE (2) TypoScript Example: lib.stdcontent = FLUIDTEMPLATE lib.stdcontent { templatename = TEXT templatename.stdwrap { cobject = TEXT cobject { data = levelfield:-2,backend_layout_next_level,slide override.field = backend_layout split { token = frontend 1.current = 1 1.wrap = } } ifempty = Default } templaterootpaths { 10 = EXT:frontend/Resources/Private/Templates 20 = EXT:sitemodification/Resources/Private/Templates } }

Extbase & Fluid Removal of xmlns-attributes and HTML Tags (1) With the introduction of using xmlns:* attributes to include ViewHelpers, it is possible to have IDE support for Fluid templates. The Problem is that the xmlns:* attributes and the corresponding tag will also be rendered, which is usually not desired. The workaround is to use sections, but this solution is counter-intuitive and not available in layouts. It also causes extra processing overhead. xmlns:* attributes for valid ViewHelper namespaces will now be removed before rendering, if they show the following syntax: http://typo3.org/ns/<phpnamespace> (xmlns attributes for non-viewhelper namespaces are preserved)

Extbase & Fluid Removal of xmlns-attributes and HTML Tags (2) Include ViewHelper namespaces within the HTML tag and the data-namespace-typo3-fluid=true attribute to prevent the rendering of the entire HTML tag <html data-namespace-typo3-fluid="true" xmlns:f="http://typo3.org/ns/typo3/cms/fluid/viewhelpers" xmlns:n="http://typo3.org/ns/georgringer/news/viewhelpers"> <f:if condition="{newsitem.title}"> <f:then> <n:titletag>{newsitem.title}</n:titletag> </f:then> <f:else> <n:titletag>news-detail</n:titletag> </f:else> </f:if> </html>

Extbase & Fluid New Methods in Fluid-StandaloneView StandaloneView is extended with settemplaterootpaths($templatepaths) and settemplate($templatename, $throwexception = TRUE) Same functionality as cobject FLUIDTEMPLATE Example (render of an email template): $view = GeneralUtility::makeInstance(StandaloneView::class); $view->setlayoutrootpaths(array(generalutility::getfileabsfilename( EXT:my_extension/Resources/Private/Layouts ))); $view->setpartialrootpaths(array(generalutility::getfileabsfilename( EXT:my_extension/Resources/Private/Partials ))); $view->settemplaterootpaths(array(generalutility::getfileabsfilename( EXT:my_extension/Resources/Private/Templates ))); $view->settemplate( Email/Notification ); $emailbody = $view->render();

Extbase & Fluid Data Processing for FLUIDTEMPLATE cobject (1) cobject FLUIDTEMPLATE has been extended with dataprocessing This setting can be used to add one or multiple processors to manipulate the $data variable of the currently rendered cobject (e.g. tt_content or page) Processor must implement the interface FluidTemplateDataProcessorInterface and contain the following method: function process(array &$data, array $processorconfiguration, array $configuration, StandaloneView $view) { [...] }

Extbase & Fluid Data Processing for FLUIDTEMPLATE cobject (2) Example: my_custom_ctype = FLUIDTEMPLATE my_custom_ctype { templaterootpaths { 10 = EXT:your_extension_key/Resources/Private/Templates } templatename = CustomName settings { extraparam = 1 } dataprocessing { 1 = Vendor\YourExtensionKey\DataProcessing\MyFirstCustomProcessor 2 = AnotherVendor\AnotherExtensionKey\DataProcessing\MySecondCustomProcessor 2 { options { myoption = SomeValue } } } }

Κατηργημένες/Αφηρημένες Μέθοδοι Κεφάλαιο 5: Κατηργημένες/Αφηρημένες Μέθοδοι

Κατηργημένες/Αφηρημένες Μέθοδοι Αναδόμηση της FormEngine TCA: TSconfig: Hooks: Οι επιλογές _PADDING, _VALIGN και DISTANCE έχουν αφαιρεθεί από τα TCA[ atable ][ columns ][ afield ][ config ][ wizards ] Το κλειδί TCA[ atable ][ ctrl ][ mainpalette ] έχει αφαιρεθεί Τα κλειδιά mod.web_layout.tt_content.fieldorder και TCEFORM.aTable.aField.linkTitleToSelf έχουν αφαιρεθεί Τα hooks χρησιμοποιούν τώρα το κλειδί type αντί για form_type Hook getsinglefieldclass has been removed

Κατηργημένες/Αφηρημένες Μέθοδοι Αφαίρεση του IdentityMap από την Extbase Η κλάση IdentityMap έχει αφαιρεθεί από την Extbase (μία ReflectionException ρίχνεται αν η κλάση είναι ακόμα σε χρήση) Η πρόσβαση των προϋπαρχουσών IdentityMap ιδιοτήτων σε DataMapper και Repository t wra apotugq anei kai h dhmiourg ia stigmiot upwn tou IdentityMap den e inai pia dunat h Αντί αυτού χρησιμοποιήστε τις Sessions: $session = GeneralUtility::makeInstance(ObjectManager::class)->get( \TYPO3\CMS\Extbase\Persistence\Generic\Session::class ); $session->registerobject($object, $identifier); if($session->hasidentifier($identifier)) { $object = $session->getobjectbyidentifier($identifier, $classname); }

Κατηργημένες/Αφηρημένες Μέθοδοι Διάφορα (1) Το αρχείο typo3conf/exttables.php έχει καταργηθεί. Αντ αυτού χρησιμοποιήστε το αρχείο: <your_extension>/configuration/tca/overrides/pages.php Η ρύθμιση παραμέτρων $TYPO3_CONF_VARS[GFX][png_to_gif] έχει αφαιρεθεί. Στις εγκαταστάσεις του TYPO3 CMS, που δεν έχουν την επέκταση rsaauth εγκατεστημένη, τα BE login passwords έχουν μετατραπεί τώρα σε απλό κείμενο (λύση: εγκαταστήστε την επέκταση rsaauth ή χρησιμοποιήστε HTTPS για το BE)

Κατηργημένες/Αφηρημένες Μέθοδοι Διάφορα (2) Η μέθοδος exec_selectgetrows() επικυρώνει τώρα την παράμετρο $uidindexfield. Αν το προσδιορισμένο πεδίο δεν υπάρχει στο αποτέλεσμα της βάσης, τότε ρίχνεται μία InvalidArgumentException.

Κατηργημένες/Αφηρημένες Μέθοδοι Διάφορα (3) Η επιλογή DBAL config.classfile έχει αφαιρεθεί Οι επιλογές icononly και styleattributes του CshViewHelper σημειώνονται τώρα ως κατηργημένες Η επιλογή της ΤψποΣςριπτ page.bgimg είναι τώρα κατηργημένη Η μέθοδος isenabled() της κλάσης T3editor είναι τώρα κατηργημένη Ο παλιός TYPO3 ClassLoader έχει αφαιρεθεί, και τη θέση του έχει πάρει ο ClassLoader

Πηγές και Συγγραφείς Κεφάλαιο 6: Πηγές και Συγγραφείς

Πηγές και Συγγραφείς Πηγές (1) Νέα της TYPO3: http://typo3.org/news Πληροφορίες Δημοσίευσης: http://wiki.typo3.org/typo3_cms_7.3.0 INSTALL.md and ChangeLog typo3/sysext/core/documentation/changelog/7.3/* Αναφορές Προβλημάτων στην TYPO3: https://forge.typo3.org/projects/typo3cms-core TYPO3 Git Αποθήκες (Repositories): https://git.typo3.org/packages/typo3.cms.git https://git.typo3.org/packages/typo3.fluid.git

Πηγές και Συγγραφείς TYPO3 CMS Διαφάνειες Τι Νέο Υπάρχει: Patrick Lobacher ( Ερευνα, Συγκέντρωση Πληροφορίας και Εκδοση στα Γερμανικά) Michael Schams (Επικεφαλής Εργου και Εκδοση στα Αγγλικά) Μεταφράσεις από: Andrey Aksenov, Paul Blondiaux, Sergio Catala, Jigal van Hemert, Michel Mix, Sinisa Mitrovic, Angeliki Plati, Nena Jelena Radovic, Roberto Torresani http://typo3.org/download/release-notes/whats-new Υπό την άδεια της Creative Commons BY-NC-SA 3.0