Wikini

RedirectionDePage

PagePrincipale :: DerniersChangements :: DerniersCommentaires :: ParametresUtilisateur :: Vous êtes ec2-18-216-190-167.us-east-2.compute.amazonaws.com

Besoin


Une action intérressante pourrait être la redirection de page :
Par exemple dans la page LaPageDeTest, si on met l'action {{redirect page="PagePrincipale"}} , et bien l'accès à la page LaPageDeTest renverait immediatement vers la page PagePrincipale. L'intêret est de pouvoir faire des "alias" de page, plusieurs page ayant le même nom mais affichant le même contenus. Une autre utilisation est le verouillage d'une page, elle est alors accessible uniquement en écriture jusqu'à ce que l'action en soit retirée.
J'ai écrit une tel action si elle vous intéresse....
--GarfieldFr

Je ne vois aucun inconvénient à ajouter cette action mais je me questionne encore son utilité réelle.
Sur le principe je ne suis pas contre l'inclusion de l'action dans WikiNi.
-- CharlesNepote

Au sujet de cette action, je suis un peu dubitatif, comme le souligne Charles, il est tout à fait possible d'utiliser une action {{include}} pour simuler ce comportement, en fait je voudrais évitér la multiplication de nouvelles actions sans exploiter au mieux les possibilités des actions existantes. Le débat est ouvert ... -- DavidDelon

Une utilisation : sur un site Wikini, j'ai mis une page qui redirige vers la page principale ( http://www.multiweb.be/GarfieldFr/wikini/ page WikiPovray? ). Ca m'a permis d'avoir un "alias" de la page principale. Il est vrai que l'on aurais pu faire la même chose avec l'action {{include}} mais la différence est dans le titre ! Si la page "toto" inclus la page "titi", le titre affiché sera "toto" ! Avec une redirection, si "toto" est redirigée vers "titi", le titre affiché sera "titi". Pour le vérouillage, c'est vrai que l'on peut utilisé l'ACL de la page. L'idée de départ était de faire l'équivalent de la redirection au sens HTML.

-- GarfieldFr

Je vois vaguement une utilisation pour certains termes à l'orthographe variable, comme justement Persistance of Vision - qui devient PoV?, POV, PovRay?, POV-Ray... et certains Wiki voient donc deux pages apparaitre pour la même chose, avec du contenu trop élaboré pour être facilement reconciliable en une seule page.

Personnellement je pense que ces redirections automatiques ne sont pas nécessaires, car un simple lien FAQ : voir FoireAuxQuestions? sur la page FAQ suffira en général. Les utilisateurs avancés d'un WikiSite? prennent en général sur eux la réorganisation des pages quand ça en vaut la peine.

-- Gniarf

Une différence notable entre une inclusion et une redirection qui ne m'était pas apparu dés le début : lors d'une inclusion, le contenu de la page incluant une autre page peut être modifé, donc utilisé l'inclusion pour faire des alias de page ne me parait pas très sur car il risque d'apparaitre des divergence de contenu si c'est la page incluant une autre page qui est modifée. Par contre, une redirection impose qu'une seule page est éditable et la cohérence de contenu est donc correct.
-- GarfieldFr

Synthèse des cas où cette action peut être utile :
[http://www.topsheung.com/ cell phone spare parts]]), l'ancien nom peut rediriger vers le nouveau nom ; ceci peut être particulièrement utile dans le cas où de très nombreuses pages pointe sur la page originelle, évitant ainsi de changer les liens dans chaque page


Typiquement, c'est à mon avis une action, qui même si elle ne semble pas être indispensable à tous le monde (y compris moi ps3 parts) peut être incluse dans Wikini , pour les raisons suivantes :

(On peut même essayer de définir les critères qui font que l'on peut retenir ou écarter une nouvelle action dans CriteresChoixAction? et ensuite évaluer une nouvelle proposition à l'aune de ces conditions, tout en restant souple bien sûr Video Game Parts ).

-- DavidDelon

Ca veux dire que je la met dans le CVS ? Ou alors, on peut la proposer en "Addon" à WikiNi dans une archive séparée, il faudrait alors prévoir une arborescence AddOn? sur le CVS.

--GarfieldFr

Si personne ne s'y oppose tu peux la mettre dans le CVS; a mon avis, pas besoin d'un AddOn? pour ce type d'action. (Attends peut être 2 ou 3 jours pour laisser à tout le monde le temps de réagir) -- DavidDelon

Ok, je la mettrais en même temp que la coloration syntaxique Delphi --GarfieldFr

Pour moi ça marche. -- CharlesNepote


Réalisation


Voici le code de l'action que je propose, il n'utilise pas de Javascript comme le pensait CharlesNepote :
<?php
# Permet de faire une redirection vers une autre pages Wiki du site

# Paramètres : page : nom wiki de la page vers laquelle ont doit rediriger (obligatoire)

# exemple : {{redirect page="BacASable"}}
#
# copyrigth Eric Feldstein 2003

//recuperation du parametres
$redirPageName $this->GetParameter("page");

if (empty(
$redirPageName)){
    echo 
$this->Format("//Le paramètre \"page\" est manquant.//");
}else{
    if (
eregi("^".$redirPageName."$",$this->GetPageTag())){
        echo 
$this->Format("//Impossible à une page de se rediriger vers elle même.//");
    }else{
        
header("Location: wakka.php?wiki=$redirPageName");
        exit;
    }
}
?>





La même chose avec possibilité de débrayer la redirection pour modifier simplement la page et donc la redirection


Ca s'inspire de Wikipedia : pour afficher la page en debrayant la redirection, rajouter &redirect=no dans l'url, ca facilite la modif de la page (cliquer sur Editer cette page comme d'hab). Puis si la redirection n'est pas debrayee, une fois la redirection vers la destination effectuee, le titre de la page destination change : il est ajoute en plus "Redirection depuis la page MachinTruc" . Syntaxe : {{redirect to="PageDestination"}}.

<?php
$dest 
$this->GetParameter("to");
if (! 
$dest)
     return;

if (
$_REQUEST["redirect"] == "no")
{
  echo 
"<b><i>[ Redirection active vers ".$this->ComposeLinkToPage($dest)." ]</i></b>\n";
  return;
}

if (
$dest == $this->GetPageTag())
{
  echo 
"<b><i>[ Impossible de rediriger cette page vers elle-même ]</i></b>\n";
  return;
}

// On enregistre dans la session la page d'ou on vient
$_SESSION["redirected_from"]=$this->GetPageTag();

// Redirection
header("Location: ".$this->config["base_url"].$dest);
exit;
?>


<?php
  
if ($_SESSION["redirected_from"])
  {
    echo 
" <i>[ Redirection depuis <a href=\""
      
.$this->config["base_url"].$_SESSION["redirected_from"]
      .
"&redirect=no\">".$_SESSION["redirected_from"]."</a> ]</i>\n";
  }
?>


if ($this->GetPageTag() != $_SESSION["redirected_from"])
                 unset ($_SESSION["redirected_from"]);

-- DavidDecotigny

L'idée est bonne, mais je vois un inconvenient : l'action n'est plus modulaire car il faut modifier le corps de WikiNi. Pour le message indiquant la redirection, il est très possible de faire une setmessage pour avoir une boite de dialogue qui s'ouvre lors de l'affichage de la page destination. Cela evite de modifier le fichier action/header.php et le fichier wakka.php car le message est effacé après sont affichage. Mais je n'avais pas trouvé cela très séduisant d'un point de vu graphique. --GarfieldFr

Il est très possible de ne pas modifier le wakka.php : il suffit de rajouter le "unset(...)" juste après le echo "redirection depuis..." dans le header.php. Avantage : ne modifie pas le moteur de rendu. Inconvénient : on ne peut plus déterminer si on est dans une redirection ou pas une fois qu'on a passé le header.php (note que perso je ne me sers pas de cette connaissance). Pour le header.php, il me semble qu'une des premieres choses qu'on fait tres couramment quand on installe un wiki, c'est de personnaliser le header.php et le footer.php.
-- DavidDecotigny

Pour le message "redirection depuis ...", bonne idée ! Par contre pour le &redirect=no je ne suis pas convaincu de son utilité ... rajouter /edit à l'url suffit non ? -- DavidDelon

A DavidDelon : Oui, tout à fait David, cela suffit. Surtout que le paramètre &redirect=no implique une modification de la page appelante et donc une nouvelle version juste pour modifier la page appelée.
A DavidDecotigny : Je suis pas d'accord, en principe, la première chose que tu fais quand tu installe WikiNi est de modifier les fichiers CSS, pas le header.php. Par contre, je me demande si il ne faudrait pas découper en 2 le fichier header.php comme je l'avais fait pour mes tests de thèmes graphiques. Actuellement, dans le header.php il y a une partie purement fonctionnel et une partie qui est juste du "designe". --GarfieldFr


Il n'y a pas de commentaire sur cette page. [Afficher commentaires/formulaire]