Il peut être intéressant d'afficher une page HTML externe au wiki à l'intérieur même d'une page du wiki. Le langage HTML 4.01 prévoit d'ailleurs la
balise iframe pour cet usage.
Solution 1 : l'action transclude
Certains moteurs de wiki disposent d'une telle fonction, sous la forme d'un greffon du type de nos "actions". On verra par exemple le greffon "transclude" sur
PhpWiki :
http://wiki.crao.net/index.php/RechercheParTitre?s=transclude
J'avais développé et testé une telle action en cours d'années mais j'avais oublié de la publier.
La voici ci-dessous publiée pour la première fois et remaniéé pour l'occasion.
Exemple d'usage :
http://wikini.net/dev/wakka.php?wiki=TestActionTransclude
<?php
/*
Action transclude.php pour WikiNi 0.1.1-0.3 et supérieurs
par Charles Népote.
Version 0.1 du 28/04/2004.
Licence GPL.
Usage :
{{transclude src="http://linuxfr.org/"}}
*/
if (!$src = $this->GetParameter("src"))
{
echo "<p>Vous devez spécifier une adresse via le paramètre \"src\"</p>\n";
}
else
{
// $src = $this->GetParameter("src");
if (!$height = $this->GetParameter("height")) $height="450";
echo
"<div>",
"<p>Importé depuis l'adresse $src</p>",
"<iframe src=\"$src\" width=\"100%\" height=\"$height\">\n",
"<div><p>Impossible de visualiser ce document dans votre navigateur : ce denier ne supporte pas la balise <iframe>s.) ",
"<a href=\"$src\">Cliquer ici</a> pour voir la page</p>\n",
"</div>\n",
"</iframe>\n",
"</div>\n";
}
?>
--
CharlesNepote
Note : la balise <iframe> est valide en XHTML 1.0 Transitionnal mais elle est absente de la DTD XHTML 1.0 Strict. Il est peut être envisageable de la remplacer par une balise <object>, je vais étudier ça...
--
CharlesNepote
Discussions
Je ne suis pas sûr que les usages soient nombreux. Personnellement, je ne m'en suis jamais servi. On en trouve quelques exemples sur
CraoWiki.
--
CharlesNepote
Action intéressante mais qui pose un problème de droit d'auteur. En effet, de quel droit pouvons nous afficher sur nos pages une page provenant d'un autre site sans autorisation ? De plus, cela est redondant avec les flux RSS diponibles sur beaucoup de sites. Il serait peut être plus judicieux d'écrire une action permettant d'afficher le flux RSS d'un autre site. On gagnerait en homogénéïté graphique et pas de risque de problème de droit d'auteur. --
GarfieldFr
- 1. il y a des cas où le problème de droits d'auteur ne se pose pas, lorsque tu fais appel, par exemple, à un autre site dont tu es également l'auteur.
- 2. pour éviter ces risques, CraoWiki mentionne explicitement à chaque "transclusion" : "Transcluded from http://www.francopee.com/carnet/" (voir par exemple : http://wiki.crao.net/index.php/TranscludePlugin/Exemples) ; je pense que cela les met à l'abri de ce type de problème. Tout du moins, on ne peut les accuser d'avoir chercher à détourner une information en la cachant des utilisateurs. Ce type de problème se pose également pour les <frame>.
- .--CharlesNepote
- Je pense qu'il faudrait ajouter une phrase du type : "Avec l'autorisation de xxxxx" en plus de la phrase "Importé depuis l'adresse xxxx". J'ai déjà vu des sites sur lesquel le webmaster ralait car certains sites mettaient des liens de download par exemple vers les downloads du site original. Indiquer que l'importation est autorisée protège WikiNi puisque l'utilisation de cette action est soumise à l'autorisation du site importé. --GarfieldFr
- On ne peut cependant pas automatiser l'affichage du message d'autorisation... -- ProgFou
Cette action est effectivement intéressante, d'autant plus si on peut la coupler à une gestion de cache : ça permettrait d'avoir une version "transcludée" de la page, c'est à dire la dernière version dans le cache si la page n'est plus ou pas récupérable, avec affichage de la date de la page du cache et du lien vers la page d'origine... Ce serait vraiment cool je pense ! En particulier quand on veut citer un article dont on est pas sûr de la pérénité => gestion automatique de celle-ci ! :) --
ProgFou