CMS

TYPO3 6.0 – Aperçu du gestionnaire d’extensions

Publié le Mis à jour le

Un petit coup d’oeil cette fois-ci au gestionnaire d’extensions dont c’est la troisième refonte et qui fonctionne désormais sous Extbase.

TYPO3 6.0 - Gestionnaire d'extensions

Il y a actuellement un problème qui empêche la mise à jour de la liste des extensions mais le problème est connu et à déjà été résolu. Pour forcer la mise à jour, vous devez cliquer une ou plusieurs fois sur la ligne « last update ».

TYPO3 6.0 - Gestionnaire d'extensions

Vous pouvez voir toutes les versions d’une extension sur une seule page. Ici, la colonne « Upload comment » est très utile car c’est à priori la seule manière de distinguer les différentes versions.

TYPO3 6.0 - Gestionnaire d'extensions

On retrouve 4 icônes pour chaque extension installée :

  •  configurer
  • supprimer
  • télécharger (zip)
  • télécharger dump SQL

TYPO3 6.0 - Gestionnaire d'extensions

Ci-dessous, la partie configuration de l’extension RealURL.

typo3-6-module-lextension-manager-5

Publicités

TYPO3 6.0 – Aperçu du module langue

Publié le Mis à jour le

Voici un petit aperçu du module langue dans TYPO3, qui était auparavant accessible depuis le gestionnaire d’extensions.

Module langue TYPO3 6.0

Module langue TYPO3 6.0

Sortie de TYPO3 6.0

Publié le Mis à jour le

La version finale de TYPO3 est sortie ce mardi 27 novembre 2012.

Il aura fallu 7 mois pour préparer cette nouvelle version de TYPO3. Depuis mai 2012; nous avons eu droit à 3 versions alpha, 2 versions beta et 2 RC.
Sachant qu’il s’agit d’une version majeure, on peut affirmer que toutes les personnes (plus d’une centaine de différents pays) ayant participé à son développement ont été très efficaces.
Cette version a été baptisée « Back to the future », pour faire référence à la trilogie « Retour vers le futur ». Le code de l’application a été amélioré et certaines parties ont été réécrites.
Voici les principales nouveautés à retenir :

– File Abstraction Layer (FAL)
On l’attendait depuis longtemps, depuis les dernières versions de la branche 4.x
Le FAL vous permet de connecter le dossier fileadmin, c’est à dire la bibliothèque de documents, à des espaces de stockage en ligne (Dropbox, WebDAV, Amazon S3…). C’était rendu possible récemment à Dropbox grâce à quelques extensions du TER mais maintenant, c’est natif.
Une fonctionnalité qui devrait rencontrer du succès !

Petites remarques : vu que le système fonctionne grâce à la base de données (il faut bien stocker les informations quelque part et maintenir surtout les références entre enregistrements et fichiers), le FAL introduit une nouvelle tâche dans le planificateur (File Abstraction Layer : Indexing job).
Il est également possible de créer des collections de fichiers. C’est un type d’enregistrement avec au choix, une sélection de fichiers ou un dossier complet, pour organiser par exemple vos fichiers, afficher une galerie en front office, etc.
TYPO3 devient nativement de plus en plus complet et davantage moderne !

– Références de fichier et meta-informations
Les fichiers utilisés à plusieurs endroits sur un site ne sont désormais plus copiés mais référencés, d’où une économie substantielle au niveau stockage. De plus, il est également possible de centraliser des informations sur les fichiers (titre, description par exemple)
et de réutiliser ensuite ces informations sur le front office. Ces informations sont gérées avec IRRE (Inline Relational Record Editing), une méthode disponible dans TYPO3 depuis la version 4.1 pour faciliter la mise à jour des données ainsi
que les relations entre elles.

– Code de meilleure qualité et assurance qualité
La Core Team poursuit son objectif au fil des versions : rendre le code de TYPO3 plus moderne, plus compréhensible et optimal.

– Implémentation des espaces de noms
La structure des classes PHP a été simplifiée tout en conservant la rétro-compatibilité avec bon nombre d’extensions. Je modère toutefois mes propos car il y a un grand nombre d’extensions qui ne sont plus compatibles (elles font appel à des fonctions qui n’existent plus).

– Gestionnaire d’extension
Il a été réécrit entièrement, ceci pour la troisième fois. Il fonctionne désormais sous Extbase. La gestion des langues fait partie d’un nouveau module (Extension « lang ») et l’installation d’une extension peut désormais se faire en un
seul clic, même si sont installation nécessite des dépendances. Ce qui est pratique dans cette nouvelle version, c’est que vous pouvez visualiser plus facilement les différentes versions de chaque extension, et les télécharger plus simplement
car l’utilisabilité a été améliorée.
En revanche, pour ceux comme moi qui ont l’habitude vider la table cache_extensions avant chaque sauvegarde, cette table n’existe plus. Elle est remplacée par tx_extensionmanager_domain_model_extension.

– Autres changements / améliorations

  • Notre vieux fichier localconf.php n’existe plus, il a été remplacé par LocalConfiguration.php. Ce n’est pas simplement un changement de nom car la syntaxe est légèrement différente et il n’est plus souhaitable d’écrire du code personnalisé dans ce fichier.Désormais, vous devrez passer par le fichier AdditionalConfiguration.php, dans typo3conf également. Sachez que lors de la mise à jour d’une version 4.7 par exemple, vers la 6.0, l’assistant de mise à jour effectue la migration de l’ancien fichier vers le nouveau. Dans la pratique, je n’en sais pas plus car je n’ai pas encore eu l’occasion d’effectuer des migrations vers cette nouvelle version.
  • Drag and Drop pour les éléments de contenu
  • Plus de Xclass, ce qui n’est pas forcément un mal. (il faut déclarer vos modifications dans le fichier ext_autoload.php)
  • Le module backend de l’administration des utilisateurs a été entièrement été redéveloppé sous Extbase. Des options de filtre, de recherche sont disponibles.
  • Les sessions des utilisateurs connectés au back office sont visibles et peuvent être interrompues d’un seul clic
  • Le rendu des éléments de contenu dans le module page a été amélioré (start/stop/access ont été déplacé vers le bas)
  • L’insertion d’un élément de contenu existant peut se faire depuis l’assistant et le module page affiche des détail sur l’élément inséré
  • La gestion des langues est disponible dans la section des outils pour admin
  • Les notes internes ont été redeveloppées avec une gestion de catégories
  • Arborescence et couleurs depuis le TS Config (options.pageTree.backgroundColor.<pid> = <color>)
  • Typoscript : ajout de pipes, différent de … pour les conditions
  • Et d’autres encore…

Si vous décidez de passer à cette nouvelle version, c’est une bonne chose mais il faudra peut-être attendre quelques versions pour que des bogues soient résolus … c’est le propre de chaque version majeure. Vérifiez la compatibilité avec votre hébergement et attention à vos vieilles extensions. On utilisera de plus en plus Extbase et la rétro-compatibilité deviendra de plus en plus compliquée !

Happy coding 😉

Les prérequis :
PHP 5.3.x / 5.4.x
MySQL 5.1-5.5 (plus de support pour MySQL 5.0.x)
Support prévu jusqu’en avril 2014.

Ressources :
IRRE : http://wiki.typo3.org/Inline_Relational_Record_Editing
Typovision : http://www.typovision.de/fileadmin/slides/TYPO3-CMS-6.0-Die-Neuerungen-typovision.pdf
Extensions incompatibles (+ de 2000) : http://wiki.typo3.org/Special:Search/TYPO3_6.0_Incompatible_Extensions
Wiki arborescence : http://wiki.typo3.org/Pagetree

Compression JS/CSS avec TYPO3

Publié le Mis à jour le

Un intégrateur ou un développeur doit forcément avoir les bons outils pour juger de la qualité d’une maquette, des performances d’un site internet, etc. Si je vous parle d’Yslow par exemple, vous n’êtes pas censé (normalement) ignorer que cet outil est une extension Firefox qui vous permet d’analyser des pages web et vous fournir des pistes pour optimiser l’affichage de ces dernières. A vrai dire, on a pas besoin forcément de cet outil pour juger de la qualité d’un code HTML. Il suffit de regarder la source HTML avec son navigateur pour avoir déjà une première opinion !

De nos jours, nous utilisons de plus en plus de fichiers css et javascript lorsque nous ajoutons telle ou telle fonctionnalité à un site. Vous voyez déjà où je veux en venir ? Bien 🙂 Si je prends l’exemple de ma librairie JS préférée, Jquery, il arrive un moment où le nombre de fichiers appelés pour chaque plugin devient important. C’est encore plus le cas quand vous jetez un oeil à des maquettes HTML toutes prêtes sur le net.

Récemment, j’ai eu affaire à ce type de maquette HTML pour un client. Quelques CSS externes étaient appelées mais par contre, côté JS, c’était un peu la catastrophe : 15 fichiers ! Parmi ces JS, il y a l’appelle à la librairie Jquery, puis un plugin complémentaire à Jquery, un autre pour améliorer les polices, un autre pour un slider, un autre pour une galerie, etc.

Voici par exemple le score avec Yslow :

C’est là que je me suis tournée vers la compression CSS et CSS. Que faut-il entendre par là ? On va tout d’abord minifier puis coller tous les fichiers pour en faire un seul. Il y a la compression gzip mais je l’utilise déjà sur le serveur. Au final, nous en aurons deux fichiers:

– un fichier pour les CSS
– un fichier pour les JS

On a pas loin de 6000 extensions sur le TER mais peu concernent la compression. Je vais donc vous en présenter une : scriptmerger

Cette extension fonctionne particulièrement bien. Son auteur, dans la documentation, avertit le lecteur que plusieurs tests peuvent être nécessaire pour arriver au fonctionnement optimal, sans encombre. Dans mon cas, j’ai l’habitude d’appeler mes CSS et mes JS avec page.headerData pour contrôler plus facilement les entêtes de mes pages. Avec ce type d’extension, le mieux est de passer par la bonne vieille méthode que voici :

page {
includeCSS {
file1 = fileadmin/templates/…/css/style.css
file2 = fileadmin/templates/…/css/red.css
}

includeJS {
file1 = fileadmin/templates/…/js/jquery.min.js
file2 = fileadmin/templates/…/js/query.easing.1.3.js
[…]
file14 = fileadmin/templates/…/js/browserDetect.js
}
}
Oui, plus que 14 js ici car j’en ai supprimé un en trop après le 1er test.

Installez l’extension scriptmerger puis ajouter les constantes et le setup de l’extension dans le gabarit TS de votre site. Je ne saurais trop vous conseiller de vous entrainer sur une page, plutôt que sur le site. En effet, si la manipulation ne fonctionne pas du premier coup, tout le site sera impacté !
La documentation de l’extension est très bien expliquée. Toutefois, je vous donne ma configuration pour information :

Constantes :

###
# These are the default TS-constants for scriptmerger
###
plugin.tx_scriptmerger {
css {
enable = 1
addContentInDocument = 0

# minification
minify {
enable = 1
ignore = \.min\.
}

# gzip compression
compress {
enable = 0
ignore = \.gz\.
}

# merging
merge {
enable = 1
ignore =
}
}

javascript {
enable = 1
parseBody = 1
addBeforeBody = 0
doNotRemoveInDocInBody = 1
addContentInDocument = 0

# minification
minify {
enable = 1
useJSMinPlus = 1
ignore = \?,\.min\.
}

# gzip compression
compress {
enable = 0
ignore = \?,\.gz\.
}

# merging
merge {
enable = 1
ignore = \?
}
}
}

Setup :

plugin.tx_scriptmerger {
# minification, compressing and merging of css files
css {
enable = {$plugin.tx_scriptmerger.css.enable}
addContentInDocument = {$plugin.tx_scriptmerger.css.addContentInDocument}

# minification
minify {
enable = {$plugin.tx_scriptmerger.css.minify.enable}
ignore = {$plugin.tx_scriptmerger.css.minify.ignore}
}

# gzip compression
compress {
enable = {$plugin.tx_scriptmerger.css.compress.enable}
ignore = {$plugin.tx_scriptmerger.css.compress.ignore}
}

# merging
merge {
enable = {$plugin.tx_scriptmerger.css.merge.enable}
ignore = {$plugin.tx_scriptmerger.css.merge.ignore}
}
}

# minification, compressing and merging of javascript files
javascript {
enable = {$plugin.tx_scriptmerger.javascript.enable}
parseBody = {$plugin.tx_scriptmerger.javascript.parseBody}
addBeforeBody = {$plugin.tx_scriptmerger.javascript.addBeforeBody}
doNotRemoveInDocInBody = {$plugin.tx_scriptmerger.javascript.doNotRemoveInDocInBody}
addContentInDocument = {$plugin.tx_scriptmerger.javascript.addContentInDocument}

# minification
minify {
enable = {$plugin.tx_scriptmerger.javascript.minify.enable}
useJSMinPlus = {$plugin.tx_scriptmerger.javascript.minify.useJSMinPlus}
ignore = {$plugin.tx_scriptmerger.javascript.minify.ignore}
}

# gzip compression
compress {
enable = {$plugin.tx_scriptmerger.javascript.compress.enable}
ignore = {$plugin.tx_scriptmerger.javascript.compress.ignore}
}

# merging
merge {
enable = {$plugin.tx_scriptmerger.javascript.merge.enable}
ignore = {$plugin.tx_scriptmerger.javascript.merge.ignore}
}
}
}

Pour le setup, je n’ai rien modifié. Donc, intéressons-nous seulement aux constantes. Il y a un découpage en deux parties : une pour le traitement des CSS et une autre pour le traitement des JS. Les deux traitements sont ici activés. En revanche, je n’ai pas activé la compression gzip comme expliqué un peu plus haut. J’ai également modifié l’option « parseBody » à un pour que l’extension analyse le body de la page. L’extension utilise des librairies que l’on retrouve dans le dossier « resources » de l’extension. JSMin+ est par exemple utilisée pour minifier les fichiers javascript.

Il n’y a donc certes pas de magie à tout celà mais il faut avouer que l’extension scriptmerger est efficace. Voilà mon résultat juste après :

En résumé, passage du grade B au grade A grâce à l’obtention de 7 points supplémentaires. Pour vérifier que l’extension fonctionne bien, il suffit de jeter un oeil à la source HTML.

<link rel= »stylesheet » type= »text/css » media= »all » href= »typo3temp/scriptmerger/uncompressed/head-fd4495d07e02c20d26f8aab7626f7626.merged.css » />
<script type= »text/javascript » src= »typo3temp/scriptmerger/uncompressed/head-740be043a9a8a1e3eb25bc6b410b4a52.merged.js »></script>

Deux fichiers seulement. C’est plus propre non ?

Etude sur la présence du CMS TYPO3 dans le monde

Publié le

Une étude intéressante est disponible sur Infoglobe.ca. Elle dresse un bilan sur l’architecture technique de 5000 sites référencés sur TYPO3.org. A noter que plus de 50% des sites étaient hébergés en Allemagne !!! Merci à Jean Luc Henry et à Yannick Pavard pour cette étude Sourire

Etude TYPO3 sur Infoglobe.ca

Kasper Skaarhoj … c’est fini ?

Publié le

Ca en à tout l’air mais j’avais bien l’impression de voir Kasper plus du tout au 1er plan sur le développement de TYPO3. C’est clair que Kasper faisait toujours la promotion de TYPO3, notamment au Cebit 2007 à Hanovre. Cependant, on a davantage l’habitude d’entendre Michael Stucki ou Dmitry Tulepov sur le développement et les orientations du CMS TYPO3. Il se retire après avoir passer 10 années à promouvoir sonn bébé. On peut lui tirer notre chapeau et lui dire un grand merci…. MERCI Kasper pour tout ce que tu as fait 🙂

http://typo3.org/community/people/kasper-s-korner/but-not-for-a-lifetime/

Université TYPO3 à Lausanne

Publié le

Me voilà sur le départ pour l’Université d’été TYPO3 à Lausanne. J’y resterai toute la semaine afin de ne rien manquer