Merci Chrys pour ce tuto
Je rajoute un point pour simplifier, Etape 3, vous pouvez employer ce code à la place :
Code :
<row>
<atm-linx type="direct">
<selection>
<start><nodespec type="node" value="1000" /></start>
</selection>
<display>
<htmltemplate><a href="{{href}}?p={{pageID}}">Envoyer à un ami</a></htmltemplate>
</display>
</atm-linx>
</row>
Il doit aussi être possible d'arriver à un résultat similaire sans trop de code PHP, en employant le module formulaire d'Automne (sur la toute dernière version d'Automne).
La rangée lien serait de cette forme :
Code :
<row>
<atm-linx type="direct">
<selection>
<start><nodespec type="relative" value="self" /></start>
</selection>
<display>
<htmltemplate>
<?php
$pageURL = urlencode('{{href}}');
$pageTitle = urlencode('{{title}}');
?>
</htmltemplate>
</display>
</atm-linx>
<atm-linx type="direct">
<selection>
<start><nodespec type="node" value="1000" /></start>
</selection>
<display>
<htmltemplate><?php echo '<a href="{{href}}?title='.$pageTitle.'&url='.$pageURL.'">Envoyer à un ami</a>';</htmltemplate>
</display>
</atm-linx>
</row>
Il faudrait ensuite créer un formulaire via le module de formulaire comportant un champs email pour l'email du destinataire. Saisissez ensuite dans l'action "envoyer un email" du formulaire, dans le champs d'en tête du message un texte ressemblant à :
Code :
<strong>Titre de l'article : {request:string:title}</strong>
Accédez à l'intégralité de cet article : <a href="{request:string:url}">{request:string:url}</a>
Ceci étant, je n'ai pas testé il se peut que ça coince quelque part ... à vérifier. Chrys ton code à deux avantages : il ne permet pas l'émission par email d'une URL qui transite dans l'adresse (ce qui pourrait être détourné par des robots), et il permet de gérer le formatage de l'email émis. Il a par contre un inconvénient, dans le cas d'un intranet sécurisé, il permet (en changeant le n° de la page à envoyer dans l'url) d'identifier des pages masquées à l'utilisateur connecté ainsi que leur adresse (aucun contrôle de droit) mais je ne pense pas que mon code soit meilleur à ce niveau, là aussi il faudrait que je le teste plus en avant.