From: olivier <> Date: Thu, 16 Apr 2009 12:00:38 +0000 (+0000) Subject: eztelemeta: improve doc, suppress cache ttl option (useless), add/fix license headers X-Git-Tag: 1.1~647 X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=41d0047b93cd7fdcbca841f36be8b41ec670b175;p=telemeta.git eztelemeta: improve doc, suppress cache ttl option (useless), add/fix license headers --- diff --git a/tools/eztelemeta/autoloads/eztelemetadata.php b/tools/eztelemeta/autoloads/eztelemetadata.php index bc3fec02..36a7116e 100644 --- a/tools/eztelemeta/autoloads/eztelemetadata.php +++ b/tools/eztelemeta/autoloads/eztelemetadata.php @@ -1,34 +1,13 @@ -// -// ## BEGIN COPYRIGHT, LICENSE AND WARRANTY NOTICE ## -// SOFTWARE NAME: eZ Publish Website Interface -// SOFTWARE RELEASE: 1.4-0 -// COPYRIGHT NOTICE: Copyright (C) 1999-2009 eZ Systems AS -// SOFTWARE LICENSE: GNU General Public License v2.0 -// NOTICE: > -// This program is free software; you can redistribute it and/or -// modify it under the terms of version 2.0 of the GNU General -// Public License as published by the Free Software Foundation. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of version 2.0 of the GNU General -// Public License along with this program; if not, write to the Free -// Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, -// MA 02110-1301, USA. -// -// -// ## END COPYRIGHT, LICENSE AND WARRANTY NOTICE ## -// +/* + * eZTelemeta page data handling + * + * Note: this is a simplified version of the eZPageData utility from ezwebin (GPL) + * + * Copyright (c) 1999-2009 eZ Systems AS, 2009 Samalyse + * Author: Olivier Guilyardi + * License: CeCILL Free Software License Agreement + */ /* Template operator to speed up page settings and style init time diff --git a/tools/eztelemeta/autoloads/eztemplateautoload.php b/tools/eztelemeta/autoloads/eztemplateautoload.php index b222f886..ca7aa004 100644 --- a/tools/eztelemeta/autoloads/eztemplateautoload.php +++ b/tools/eztelemeta/autoloads/eztemplateautoload.php @@ -1,28 +1,11 @@ -// This program is free software; you can redistribute it and/or -// modify it under the terms of version 2.0 of the GNU General -// Public License as published by the Free Software Foundation. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of version 2.0 of the GNU General -// Public License along with this program; if not, write to the Free -// Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, -// MA 02110-1301, USA. -// -// -// ## END COPYRIGHT, LICENSE AND WARRANTY NOTICE ## -// +/* + * eZTelemeta page data handling + * + * Copyright (c) 2009 Samalyse + * Author: Olivier Guilyardi + * License: CeCILL Free Software License Agreement + */ $eZTemplateOperatorArray = array(); $eZTemplateOperatorArray[] = array( 'script' => 'extension/eztelemeta/autoloads/eztelemetadata.php', diff --git a/tools/eztelemeta/datatypes/eztelemetaitem/eztelemetaitemtype.php b/tools/eztelemeta/datatypes/eztelemetaitem/eztelemetaitemtype.php index 55675eb7..e2fbb823 100755 --- a/tools/eztelemeta/datatypes/eztelemetaitem/eztelemetaitemtype.php +++ b/tools/eztelemeta/datatypes/eztelemetaitem/eztelemetaitemtype.php @@ -3,7 +3,7 @@ * Definition of the Telemeta Item datatype * * @package eztelemeta - * @author Olivier Guilyardi + * @author Olivier Guilyardi * @copyright 2009 Samalyse * @license CeCILL Free Software License Agreement */ diff --git a/tools/eztelemeta/design/standard/javascript/eztelemeta-player.js b/tools/eztelemeta/design/standard/javascript/eztelemeta-player.js index 44328aca..2e4718f7 100644 --- a/tools/eztelemeta/design/standard/javascript/eztelemeta-player.js +++ b/tools/eztelemeta/design/standard/javascript/eztelemeta-player.js @@ -1,3 +1,11 @@ +/* + * eZTelemeta web audio player + * + * Copyright (c) 2009 Samalyse + * Author: Olivier Guilyardi + * License: CeCILL Free Software License Agreement + */ + function TelemetaPlayer(cfg) { var that = this; diff --git a/tools/eztelemeta/design/standard/stylesheets/eztelemeta.css b/tools/eztelemeta/design/standard/stylesheets/eztelemeta.css index c01aada0..f7adc0b4 100644 --- a/tools/eztelemeta/design/standard/stylesheets/eztelemeta.css +++ b/tools/eztelemeta/design/standard/stylesheets/eztelemeta.css @@ -1,3 +1,10 @@ +/* + * eZTelemeta default CSS rules + * + * Copyright (c) 2009 Samalyse + * Author: Olivier Guilyardi + * License: CeCILL Free Software License Agreement + */ /* Core styles * diff --git a/tools/eztelemeta/design/standard/templates/content/datatype/view/eztelemetaitem.tpl b/tools/eztelemeta/design/standard/templates/content/datatype/view/eztelemetaitem.tpl index faa244fb..45706f2f 100755 --- a/tools/eztelemeta/design/standard/templates/content/datatype/view/eztelemetaitem.tpl +++ b/tools/eztelemeta/design/standard/templates/content/datatype/view/eztelemetaitem.tpl @@ -1,4 +1,3 @@ -{set-block scope=global variable=cache_ttl}{ezini('TelemetaSettings', 'ItemViewCacheTTL', 'eztelemeta.ini')}{/set-block} {eztelemetadata_set('eztelemeta_player', true)} {def $item=$attribute.content}
diff --git a/tools/eztelemeta/doc/README.fr.in b/tools/eztelemeta/doc/README.fr.in index 7848bbd0..79e3da71 100755 --- a/tools/eztelemeta/doc/README.fr.in +++ b/tools/eztelemeta/doc/README.fr.in @@ -5,20 +5,21 @@ eZTelemeta |version| - Mise en place et usage :Auteur: Olivier Guilyardi :Date: |today| -.. contents:: **Table des matières** +.. contents:: **Table des matières*** +.. sectnum:: ---- -I - Introduction -~~~~~~~~~~~~~~~~ +Introduction +~~~~~~~~~~~~ Le présent document décrit les procédures de mise en place et d'usage de l'extension eZPublish eZTelemeta |version|. Cette extension a pour but -de permettre l'intégration dynamique d'éléments sonore en provenance +de permettre l'intégration dynamique d'éléments sonores en provenance du logiciel Telemeta. -II - Pré-requis -~~~~~~~~~~~~~~~ +Pré-requis +~~~~~~~~~~ - Système Linux ou FreeBSD: - PHP version 5.2 ou supérieur @@ -26,11 +27,11 @@ II - Pré-requis - eZPublish 4.1.0 - l'accès distant à une installation Telemeta -III - Mise en place -~~~~~~~~~~~~~~~~~~~ +Mise en place +~~~~~~~~~~~~~ -III.1 - Installation de l'extension ------------------------------------ +Installation de l'extension +--------------------------- eZTelemeta |version| est distribuée sous la forme d'une archive .tar.gz, contenant le répertoire ``eztelemeta``, à placer dans le répertoire @@ -40,8 +41,8 @@ Puis activer l'extension dans l'administration, onglet Setup/Extensions, et régénerer les données de chargement automatique (``Regenerate autoload arrays for extensions``) -III.2 - Création de la classe principale ----------------------------------------- +Création de la classe principale +-------------------------------- eZTelemeta définit un nouveau type de données, appelé ``Telemeta Item``. Les utilisateur avancés de eZPublish peuvent envisager @@ -68,8 +69,8 @@ la casse*):: Cliquer sur OK pour enregistrer la nouvelle classe. -III.3 - Création d'un objet de contenu --------------------------------------- +Création d'un objet de contenu +------------------------------ Il est maintenant possible de créer un objet de contenu (une instance) à partir de cette classe, par exemple dans l'onglet Media Library, @@ -92,8 +93,8 @@ si la connexion HTTP ne peut-être établi à cause d'un mauvais URL, l'item ne sera pas enregistré, et une erreur s'affichera. Dans ce cas vérifiez bien votre saisie. -III.4 - Intégration de l'objet de contenu dans un article ---------------------------------------------------------- +Intégration de l'objet de contenu dans un article +------------------------------------------------- Maintenant que nous disposons d'un objet de contenu Telemeta, il est facile de l'intégrer à un article. Pour ce faire, lors de l'édition d'un article: @@ -114,14 +115,14 @@ L'intégration sous la forme d'une liste de définition HTML a plusieurs avantag - en terme de contenu, c'est la construction HTML la plus adaptée à une liste de méta-données - la présentation est facilement personnalisable avec des feuilles de styles CSS. -- elle est accessible, facilitant la consultation à l'aide de périphériques de type lecteur - d'écran destinés aux aveugles. +- elle est accessible, facilitant par exemple la consultation à l'aide de périphériques de type lecteur + d'écran destinés aux mal-voyants -IV - Intégration du lecteur audio -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Intégration du lecteur audio +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -IV.1 - Remarques sur le lecteur audio -------------------------------------- +Remarques générales sur le lecteur +---------------------------------- eZTelemeta inclut un lecteur audio web employant javascript et flash de façon dîte *dégradable*: si flash ou javascript sont absents, le lien @@ -131,7 +132,8 @@ Player, iTunes, VLC, etc...). Cependant, la plupart des utilisateurs pourront profiter du lecteur audio permettant la lecture interactive du son sans quitter la page en cours, -et notamment sous: +à la condition que le lecteur Adobe Flash 8 soit installé, et javascript +activé, sous: - Internet Explorer 6 et 7 - Firefox 2 et 3 @@ -153,15 +155,16 @@ de plusieurs sons. **Remarque :** Pour simplifier la mise en place du lecteur, il est recommandé d'utiliser une classe de contenu eZPublish dont l'identifiant -est ``telemetaitem`` comme indiqué en III.2. +est ``telemetaitem`` comme indiqué à la section `Création de la classe +principale`_. -IV.2 - Mise en place du lecteur audio -------------------------------------- +Chargement des dépendances +-------------------------- Le lecteur possède des dépendances CSS et Javascript qui doivent êtres chargées dans la section ```` des pages du site. Pour ce faire -eZTelemeta contient un template qui doit être inclu dans cette section, -en personnalisant le template ``pagelayout.tpl``. Ce template est utilisé +eZTelemeta contient un template qui doit être inclut dans cette section, +en personnalisant le template ``pagelayout.tpl``, qui est utilisé par eZPublish pour construire toutes les pages. Pour ce faire, se rendre dans l'onglet Design de l'espace @@ -185,6 +188,164 @@ les pages du site via la personnalisation de ``pagelayout.tpl``, n'alourdit pas inutilement le chargement des pages. Les dépendances CSS, JS et Flash ne sont chargées que si la page en cours contient effectivement un item Telemeta. +Personnalisation à l'aide de feuilles de style +---------------------------------------------- + +Comme indiqué à la section `Remarques générales sur le lecteur`_ +l'apparence du lecteur audio repose intégralement sur HTML et CSS, +contrairement à un lecteur possédant une interface utilisateur flash, +et peut donc facilement être personnalisée. + +Dans la majorité des cas, la personnalisation peut être effectuée à l'aide règles +de style CSS. + +Par défaut, l'affichage d'un item par défaut a la structure suivante:: + +
+
+
Son :
+
...
+ +
Durée :
+
+ ... + / + ... +
+ +
Description :
+
...
+ +
Auteur / Collecteur :
+
...
+ +
Droits d'usage :
+
...
+
+
+
+ +Lorsque la lecture est en cours, la classe ``telemeta-playing`` est +ajoutée automatiquement (par la classe javascript ``TelemetaPlayer``) +à l'élément ``div``:: + +
+ ... +
+ +Si la lecture est activée, mais que le son ne peut-être joué car il est +en cours de chargement (mise en tampon), la classe ``telemeta-loading`` +est ajoutée à l'élément ``div``:: + +
+ ... +
+ +La feuille de style par défaut est quant à elle localisée dans:: + + eztelemeta/design/standard/stylesheets/eztelemeta.css + +Cette feuille de style contient deux sections: + + - Core styles: ces règles laisse la liste de définition HTML ``
`` + quasiment intacte, ajoutant simplement l'icône play/pause au lien, + et un effet de clignotement en cours de chargement. + - Compact box styles: ces règles, légèrement plus intrusives, donne son + apparence plus compacte au lecteur, avec couleur de fond, etc... + +Personnalisation des Templates +------------------------------ + +Pour une personnalisation plus poussée de l'apparence du lecteur il est possible +de modifier les templates HTML. Pour ce faire, comme ailleurs dans eZPublish, il +est recommandé de créer des ``override`` de template, et non de modifier +directement les templates. Se reporter à la documentation de eZPublish pour plus +de détails. + +Le code HTML du lecteur réside essentiellement dans le template de vue du type +de donnée ``Telemeta Item``:: + + eztelemeta/design/standard/templates/content/datatype/view/eztelemetaitem.tpl + +Cependant, d'autres templates sont nécessaires suivant le contexte d'affichage. +Mais, pour éviter la redondance ils *incluent* le template ci-dessus. De cette +façon, la modification de ce template se répercutent automatiquement dans les +différents contextes. Néanmoins, dans certains cas, il peut-être utile d'éviter +ce mécanisme d'inclusion pour une personnalisation plus poussée, ce qui reste +possible via le système de surcharge (``override``) de eZPublish. + +Ces templates annexes, qui incluent le template principal sont:: + + - template d'imbrication (dans un article, etc...) : + eztelemeta/design/standard/override/templates/embed/eztelemetaitem.tpl + + - template de vue autonome (résultat de recherche, etc...) : + eztelemeta/design/standard/override/templates/full/eztelemetaitem.tpl + +Par ailleurs, le chargement des dépendances et l'initialisation du +lecteur sont réalisés dans:: + + eztelemeta/design/standard/templates/eztelemeta_head.tpl + + +Mise à jour dynamique et gestion du cache +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Contenu dynamique +----------------- + +Contrairement à la grande majorité des contenus gérés dans eZPublish, +les items sont susceptibles de changer depuis l'extérieur, c'est à +dire dans le contexte de Telemeta lui-même. + +L'une des raisons d'être de eZTelemeta est la répercussion automatique +de ces changements (titre, son, auteur, etc...), sans qu'il soit +nécessaire d'intervenir dans l'espace d'administration de eZPublish. + +Cette fonctionnalité est rendue possible grâce au lien OAI-PMH établi +avec Telemeta, et la gestion du cache eZPublish. + +Gestion du cache +---------------- + +L'établissement d'une connexion avec le serveur distant Telemeta ne peut +bien évidemment pas être effectuée à chaque affichage d'un item, +ce serait trop lourd. + +Cependant, eZTelemeta n'inclut pas de système de gestion de cache spécifique. +C'est le cache standard de eZPublish qui est utilisé. + +Ainsi, il convient que l'administrateur vérifie les réglages du cache, +de façon à ce qu'il soit vidé périodiquement, pour recharger les +méta-données des items Telemeta. + +Cette opération peut notamment être réalisée via un cronjob appelant régulièrement +le script eZPublish suivant:: + + php bin/php/ezcache.php --clear-tag=content + +Cette opération entraînera effectivement le rafraîchissement de l'ensemble des +méta-données des items, affichées dans le lecteur audio. + +Cependant, le nom des objets de contenu n'est pas mis à jour par la +purge du cache. C'est une limitation de eZPublish, qui est légèrement +problématique dans le contexte de la gestion d'objets distants comme +les items Telemeta. + +Les noms d'objets contiennent le titre d'item et apparaissent: + +- dans le titre HTML de la page lors de la vue autonome d'un item Telemeta +- dans la liste des résultats de recherche +- dans la liste d'objets de contenu dans l'espace d'administration + +Aucune opération de purge de cache ne met à jour ces noms d'objets, il faut soit +modifier l'item, soit avoir recours au script eZPublish suivant, via un cronjob +par exemple (il est recommandé de faire une sauvegarde avant le premier lancement +de ce script):: + + php update/common/scripts/updatecontentobjectname.php + + .. |version| replace:: EZTVERSION .. |today| date:: .. vim: set ft=rst: diff --git a/tools/eztelemeta/settings/eztelemeta.ini b/tools/eztelemeta/settings/eztelemeta.ini deleted file mode 100644 index 1e11f59f..00000000 --- a/tools/eztelemeta/settings/eztelemeta.ini +++ /dev/null @@ -1,2 +0,0 @@ -[TelemetaSettings] -ItemViewCacheTTL=7200