L'image de remplacement est un objet GIFBUILDER standard. Vous pouvez donc le modifier dans votre gabarit TS, afin d'y afficher les informations que vous voulez. Par exemple, pour afficher le titre et le sous-titre de la page:
plugin.tx_flashpageheader_pi1 {/**
* Image de remplacement
*/
noFlash.file { // Titre
20 = TEXT
20 {text = {page:title}text.insertData = 1
offset = 30,25
fontFile = t3lib/fonts/arial.ttf
fontSize = 20
fontColor = #FFFFFF
}
// Sous-titre
30 = TEXT
30 {text = {page:subtitle}text.insertData = 1
offset = 30,40
fontFile = t3lib/fonts/arial.ttf
fontSize = 14
fontColor = #FFFFFF
}
}
}
Comme vous pouvez le voir, vous êtes vraiment libre d'afficher ce que vous voulez. Vous devez juste faire attention de ne pas utiliser l'objet 10, qui sera utilisé pour placer l'image de remplacement définie sur vos pages. Toute valeur définie dans cet objet sera effacé, pour permettre à l'image de s'afficher correctement. Commencez donc toujours par l'objet 20, comme dans cet exemple.
Comment faire maintenant, si vous voulez créer votre propre animation Flash dynamique?
La première chose à faire est d'aller regarder les fichiers d'exemple qui sont fournis avec cette extension. Ceux-ci se trouvent dans le répertoire pi1/.
Vous trouverez le code source complet de l'animation Flash dans le fichier default.fla.zip. Décompressez ce fichier et ouvrez le dans Macromedia Flash (logiciel malheureusement commercial).
Trois variables sont transmises à l'animation.
Par exemple:
xmlPageId=1&xmlPageType=10000&xmlPagePath=/
xmlPageId est l'id de la page courante, xmlPageType le numéro de type de la page XML (10000 est le numéro par défaut), et xmlPagePath le chemin relatif de votre site Typo3. Avec ces variables, vous pouvez charger le contenu dynamique dans l'animation Flash.
Voici comment procéder, dans Flash:
// URL du fichier XML
var xmlPageURL = xmlPagePath add "index.php?id=" add xmlPageId add "&type=" add xmlPageType;
// Conteneur
var pageInfos = new Array();
// Nouvel objet XML
var xmlFile = new XML();
// Ne pas tenir compte des espaces blanc dans le fichier XML
xmlFile.ignoreWhite = 1;
// Fonction utilisée pour traiter le code XML une fois le fichier chargé
xmlFile.onLoad = getXML;
// Chargement du fichier XML
xmlFile.load(xmlPageURL);
// Arrêt de la ligne de temps
stop();
Le procédé est simple. En premier lieu, nous avons recréé l'URL du fichier XML à charger, à l'aide des trois variables, et nous avons créé un tableau pour y stocker les résultats. Ensuite, nous avons créé un nouvel objet XML. L'option «ignoreWhite» est obligatoire. Sans elle, Flash ne saura pas comment lire correctement le fichier XML généré. Nous avons également ajouté une fonction de traitement des données XML (en rouge). Vous trouverez cette fonction ci-dessous. La dernière étape consiste à charger les données XML, qui seront alors traitées par notre fonction.
/**
* Traite un fichier XML.
*
* Cette fonction traite un fichier XML et place ses
* données dans un tableau.
*
* @returnVide.
*/
function getXML() {// Conteneur
var xmlNodes = new Array();
// Mémorisation des nœuds XML
xmlNodes = xmlFile.firstChild.childNodes;
// Traitement XML
for (i = 0; i < xmlNodes.length; i++) {// Place chaque nœud dans le tableau conteneur
pageInfos[xmlNodes[i].nodeName] = unescape(xmlNodes[i].firstChild.nodeValue);
}
}
Le tour est joué. A la fin du processus, le tableau pageInfos contiendra chaque nœud XML. La clé sera le nom de la balise, et la valeur son contenu. Donc pour obtenir le titre de la page, il faudra utiliser ceci, par exemple:
var title = xmlInfos['title'];
Vous êtes ensuite libre de manipuler ce tableau comme bon vous semble, et d'utiliser son contenu dans votre animation pour y créer les plus beaux effets. Regardez le fichier fourni pour obtenir un exemple. J'essaierai d'inclure des exemples à ce sujet dans la prochaine version.