Recent Changes - Search:

En Français

Traduction

Pmwiki.org

En Anglais

Menu de la version anglaise

PmWiki

pmwiki.org

edit SideBar

https://www.jetphotos.com/photographer/598301 https://www.jetphotos.com/photographer/598304 https://www.jetphotos.com/photographer/598305 https://www.jetphotos.com/photographer/598307 https://www.jetphotos.com/photographer/598310 https://www.jetphotos.com/photographer/598312 https://www.jetphotos.com/photographer/598317 https://www.jetphotos.com/photographer/598318 https://www.jetphotos.com/photographer/598320 https://www.jetphotos.com/photographer/598321 https://www.jetphotos.com/photographer/598322 https://www.jetphotos.com/photographer/598324 https://www.jetphotos.com/photographer/598328 https://www.jetphotos.com/photographer/598340 https://www.jetphotos.com/photographer/598341 https://www.jetphotos.com/photographer/598346 https://www.jetphotos.com/photographer/598349 https://www.jetphotos.com/photographer/598357 https://www.jetphotos.com/photographer/598366 https://www.jetphotos.com/photographer/598372 https://www.jetphotos.com/photographer/598374 https://www.jetphotos.com/photographer/598378 https://www.jetphotos.com/photographer/600028 https://www.jetphotos.com/photographer/600031 https://www.jetphotos.com/photographer/600032 https://www.jetphotos.com/photographer/600034 https://www.jetphotos.com/photographer/600036 https://www.jetphotos.com/photographer/600037 https://www.jetphotos.com/photographer/600039 https://www.jetphotos.com/photographer/600041 https://www.jetphotos.com/photographer/600042 https://www.jetphotos.com/photographer/600045 https://www.jetphotos.com/photographer/600046 https://www.jetphotos.com/photographer/600047 https://www.jetphotos.com/photographer/600048 https://www.jetphotos.com/photographer/600050 https://www.jetphotos.com/photographer/600051 https://www.jetphotos.com/photographer/600052 https://www.jetphotos.com/photographer/600053 https://www.jetphotos.com/photographer/600055 https://www.jetphotos.com/photographer/600057 https://www.jetphotos.com/photographer/600641 https://www.jetphotos.com/photographer/600644 https://www.jetphotos.com/photographer/600645 https://www.jetphotos.com/photographer/600646 https://www.jetphotos.com/photographer/602231 https://www.jetphotos.com/photographer/602240 https://www.jetphotos.com/photographer/602244 https://www.jetphotos.com/photographer/602247 https://www.jetphotos.com/photographer/602261 https://www.jetphotos.com/photographer/602265 https://www.jetphotos.com/photographer/602279 https://www.jetphotos.com/photographer/602307 https://www.jetphotos.com/photographer/602315 https://www.jetphotos.com/photographer/602323 https://www.jetphotos.com/photographer/602340 https://www.jetphotos.com/photographer/602346 https://www.jetphotos.com/photographer/602741 https://www.jetphotos.com/photographer/602743 https://www.jetphotos.com/photographer/602744 https://www.jetphotos.com/photographer/602745 https://www.jetphotos.com/photographer/602746 https://www.jetphotos.com/photographer/602748 https://www.jetphotos.com/photographer/602749 https://www.jetphotos.com/photographer/602750 https://www.jetphotos.com/photographer/602757 https://www.jetphotos.com/photographer/602758 https://www.jetphotos.com/photographer/602762 https://www.jetphotos.com/photographer/602763 https://www.jetphotos.com/photographer/602764 https://www.jetphotos.com/photographer/602769 https://www.jetphotos.com/photographer/602770 https://www.jetphotos.com/photographer/602772 https://www.jetphotos.com/photographer/602773 https://www.jetphotos.com/photographer/602774 https://www.jetphotos.com/photographer/602775 https://www.jetphotos.com/photographer/601186 https://www.jetphotos.com/photographer/601188 https://www.jetphotos.com/photographer/601189 https://www.jetphotos.com/photographer/601191 https://www.jetphotos.com/photographer/601192 https://www.jetphotos.com/photographer/601194 https://www.jetphotos.com/photographer/601196 https://www.jetphotos.com/photographer/601197 https://www.jetphotos.com/photographer/601248 https://www.jetphotos.com/photographer/601249 https://www.jetphotos.com/photographer/601250 https://www.jetphotos.com/photographer/601251 https://www.jetphotos.com/photographer/601252 https://www.jetphotos.com/photographer/601254 https://www.jetphotos.com/photographer/601255 https://www.jetphotos.com/photographer/601256 https://www.jetphotos.com/photographer/601258 https://www.jetphotos.com/photographer/601260 https://www.jetphotos.com/photographer/601261 https://www.jetphotos.com/photographer/601263 https://www.jetphotos.com/photographer/601264 https://www.jetphotos.com/photographer/601265 https://www.jetphotos.com/photographer/601266 https://www.jetphotos.com/photographer/601267 https://www.jetphotos.com/photographer/601268 https://www.jetphotos.com/photographer/601269 https://www.jetphotos.com/photographer/601270 https://www.jetphotos.com/photographer/601272 https://www.jetphotos.com/photographer/601273 https://www.jetphotos.com/photographer/602779 https://www.jetphotos.com/photographer/602780 https://www.jetphotos.com/photographer/602781 https://www.jetphotos.com/photographer/602782 https://www.jetphotos.com/photographer/600111 https://www.jetphotos.com/photographer/600112 https://www.jetphotos.com/photographer/600148 https://www.jetphotos.com/photographer/600151 https://www.jetphotos.com/photographer/600155 https://www.jetphotos.com/photographer/600157 https://www.jetphotos.com/photographer/600159 https://www.jetphotos.com/photographer/600161 https://www.jetphotos.com/photographer/600163 https://www.jetphotos.com/photographer/600647 https://www.jetphotos.com/photographer/600648 https://www.jetphotos.com/photographer/600649 https://www.jetphotos.com/photographer/600650 https://www.jetphotos.com/photographer/602889 https://www.jetphotos.com/photographer/602890 https://www.jetphotos.com/photographer/602891 https://www.jetphotos.com/photographer/602895 https://www.jetphotos.com/photographer/602897 https://www.jetphotos.com/photographer/602900 https://www.jetphotos.com/photographer/602904 https://www.jetphotos.com/photographer/602907 https://www.jetphotos.com/photographer/602913 https://www.jetphotos.com/photographer/602916 https://www.jetphotos.com/photographer/602918 https://www.jetphotos.com/photographer/602922 https://www.jetphotos.com/photographer/602923 https://www.jetphotos.com/photographer/602925 https://www.jetphotos.com/photographer/602926 https://www.jetphotos.com/photographer/600534 https://www.jetphotos.com/photographer/600535 https://www.jetphotos.com/photographer/600536 https://www.jetphotos.com/photographer/600538 https://www.jetphotos.com/photographer/600539 https://www.jetphotos.com/photographer/600540 https://www.jetphotos.com/photographer/600542 https://www.jetphotos.com/photographer/600543 https://www.jetphotos.com/photographer/600544 https://www.jetphotos.com/photographer/600547 https://www.jetphotos.com/photographer/600548 https://www.jetphotos.com/photographer/600549 https://www.jetphotos.com/photographer/600550 https://www.jetphotos.com/photographer/600552 https://www.jetphotos.com/photographer/600553 https://www.jetphotos.com/photographer/600555 https://www.jetphotos.com/photographer/600558 https://www.jetphotos.com/photographer/600565 https://www.jetphotos.com/photographer/600566 https://www.jetphotos.com/photographer/600567 https://www.jetphotos.com/photographer/600568 https://www.jetphotos.com/photographer/600571 https://www.jetphotos.com/photographer/600573 https://www.jetphotos.com/photographer/600575 https://www.jetphotos.com/photographer/600576 https://www.jetphotos.com/photographer/600577 https://www.jetphotos.com/photographer/600578 https://www.jetphotos.com/photographer/600666 https://www.jetphotos.com/photographer/600668 https://www.jetphotos.com/photographer/600669 https://www.jetphotos.com/photographer/600670 https://www.jetphotos.com/photographer/602963 https://www.jetphotos.com/photographer/601276 https://www.jetphotos.com/photographer/601280 https://www.jetphotos.com/photographer/601281 https://www.jetphotos.com/photographer/601284 https://www.jetphotos.com/photographer/601285 https://www.jetphotos.com/photographer/601286 https://www.jetphotos.com/photographer/601287 https://www.jetphotos.com/photographer/601288 https://www.jetphotos.com/photographer/601291 https://www.jetphotos.com/photographer/601293 https://www.jetphotos.com/photographer/602776 https://www.jetphotos.com/photographer/602777 https://www.jetphotos.com/photographer/602955 https://www.jetphotos.com/photographer/602956 https://www.jetphotos.com/photographer/602957 https://www.jetphotos.com/photographer/602959 https://www.jetphotos.com/photographer/602960 https://www.jetphotos.com/photographer/602961

Balises personnalisées

La traduction des balises PmWiki est définie par un ensemble de règles; chaque règle fait une recherche sur une syntaxe spécifique dans le texte avec balises et remplace celui-ci par un autre texte. De manière interne, ceci est fait en utilisant la fonction PHP "preg_replace".

Les règles sont ajoutées au moteur de traduction via la fonction de PmWiki Markup(), qui est définie comme

   Markup($name,$when,$pattern,$replace)

ou $name est un nom unique (une chaîne) donnée à la règle, $when dit à quel moment la règle doit être appliquée relativement aux autres règles, $pattern est la syntaxe à rechercher dans le texte à balises, et $replace est ce qui doit remplacer la syntaxe trouvée.

Par exemple, le code qui crée la règle pour ''l'emphase d'un texte'' (dans scripts/stdmarkup.php):

   Markup("em","inline","/''(.*?)''/","<em>$1</em>");

Cette définition crée une règle appelée "em" qui sera exécutée avec les autres balises "inline", et la règle remplace tout texte entre deux paires de guillemets simples avec le même texte ($1) encadré par <em> et </em>.

Les deux premiers paramètres de la fonction Markup() sont utilisés pour spécifier l'ordre dans laquelle les règles doivent s'appliquer. Le premier paramètre fournit un nom pour la règle -- "em" dans l'exemple ci-dessus. Nous aurions pu choisirs d'autres noms comme "''", ou même "deuxguillemetssimples". En général PmWiki utilise la balise elle-même pour nommer la règle (c.a.d., PmWiki utilise "''" au lieu de "em"), mais pour faciliter la lecture de cet exemple, on utilise un nom mémorisable.

Le second paramètre dit que la règle doit être utilisée en même temps que les autres règles de balises "inline". PmWiki découpe la méthode de traduction en un certain nombre de phases:

   _begin          début de la traduction
   fulltext        la traduction est faite sur tout le texte 
   split           découpage du texte à balises en lignes
   directives      exécution des directives
   inline          balises 'inline'
   links           conversion des [[liens]], liens-url, et MotsWiki  
   block           balises de blocs
   style           manipulation du style 
   _end            fin de la traduction

Donc, spécifier "inline" pour le second paramètre dit que cette règle doit être appliquée dans la même phase que les autres règles "inline". Si nous voulons une règle qui soit exécutée avec les directives -- c.a.d., avant que les règles 'inline' soient exécutées, nous aurions spécifié "directives" pour le second paramètre.

Ici une règle pour le texte @@monospaced@@

   Markup("@@","inline","/@@(.*?)@@/","<code>$1</code>");

et pour une directive (:comment ...:) qui est simplement enlevée de la sortie:

   Markup("comment","directives","/\\[:comment .*?:\\]/",'');

Ok, maintenant à propos de la règle pour '''strong emphasis'''? Nous devons être prudents ici, parce que même si cette règle est appliquée dans la même séquence que les autres balises 'inline', nous devons aussi être surs que la règle pour ''' est exécutée avant la règle pour '', parce que ''' contient aussi ''. Le second paramètre de Markup() peut être utilisé pour spécifier les relations de cette nouvelle règle par rapport aux autres:

   Markup("strong","<em","/'''(.*?)'''/","<strong>$1</strong>");           

Ceci crée un règle appelée "strong", et le second paramètre "<em" dit que cette règle doit être exécutée avant la règle "em" définie plus haut. Si nous voulons exécuter une chose après la règle "em", nous utilisons ">em" à la place. Donc, il est possible d'ajouter des règles à tout moment dans la séquence de traduction de balises de PmWiki, ceci d'une manière extensive. (En fait, les séquences "inline", "block", "directives", etc., sont justes des règles de positionnement utilisées pour donner une séquence générale pour les autres règles. Donc on peut utiliser "<inline" pour spécifier les règles qui doivent être exécutées avant les autres règles "inline".).

Si vous voulez désactiver les balises disponibles, créez une ligne du genre :

   Markup("strong","<em");           

L'absence de paramètres de syntaxe indique que vous voulez désactiver la balise.

Les règles de balises par défaut de PmWiki sont définies dans le fichier scripts/stdmarkup.php. Pour voir la table de traduction complète pendant que le programme tourne, le module scripts/diag.php fournit "?action=ruleset", qui affiche l'ensemble des règles de balises dans l'ordre d'exécution. Vous pouvez voir ceci dans BalisesPersonnalisées?action=ruleset.


Voici deux exemples que beaucoup de sites doivent se poser et qu'il n'est pas facile de résoudre. Dans ces deux cas, j'ai commencé par autoriser les balises HTML nécessaires, mais cela créait un trou dans la sécurité. Je suis donc venu aux balises personnalisées.

Balise Xiti

Xiti est un système de statistiques mis à disposition des internautes gratuitement (pour les sites sans but très lucratif, ou en cours de démarrage), qui repose sur l'affichage d'un logo. L'appel de ce logo contient, entre autres, le nom de la page que l'on souhaite tracer.

Si le navigateur n'accepte pas les Javascripts, il s'agit d'un simple appel <IMG>. Si les scripts sont acceptés, d'autres informations sont récupérées (taille de l'écran, page d'origine…).

Dans les pages à tracer, ajouter l'instruction (:xiti `{$FullName}:). Noter que $FullName est le nom complet de la page (on peut mettre autre chose, si l'on veut). Important : Ne pas oublier l'anti-quote avant l'accolade (sinon, c'est interprété comme un lien et des balises HTML sont rajoutées) ! Astuce : Mettre cette instruction dans la barre de navigation évite de mettre la balise dans toutes les pages…

Dans le fichier config.php, inclure le code suivant (remplacer XXXXXX par le code client fourni par Xiti) : Note  Certaines lignes ont été coupées… Merci de recoller les morceaux !

Markup('xiti', '>block', '/\\(:xiti (.*?):\\)/', '
<a href="http://www.xiti.com/xiti.asp?s=XXXXXX" title="Mesurez votre audience">
<script type="text/javascript">
<!--
Xt_param = \'s=210790&p=$1\';
Xt_r = document.referrer;
Xt_h = new Date();
Xt_i = \'<img width="39" height="25" border="0" \';
Xt_i += \'src="http://logv28.xiti.com/hit.xiti?\'+Xt_param;
Xt_i += \'&hl=\'+Xt_h.getHours()+\'x\'+Xt_h.getMinutes()+\'x\'+Xt_h.getSeconds();
if(parseFloat(navigator.appVersion)>=4)
{Xt_s=screen;Xt_i+=\'&r=\'+Xt_s.width+\'x\'+Xt_s.height+\'x\'+Xt_s.pixelDepth+\'x\'+X
t_s.colorDepth;}
document.write(Xt_i+\'&ref=\'+Xt_r.replace(/[<>"]/g, \'\').replace(/&/g, \'$\')+\'" t
itle="Analyse d\\\'audience">\');
//-->
</script>
<noscript>
<img width="39" height="25" src="http://logv28.xiti.com/hit.xiti?s=XXXXXX&p=$1" alt="A
nalyse d\'audience">
</noscript>
</a>');
Une question reste à résoudre : Si $FulName est un MotWiki, cela fonctionne bien. Mais si ce n'est pas le cas, l'antiquote est conservée et apparaît dans le nom de la page.
Pour la partie JavaScript, l'on peut s'en sortir ainsi :
Xt_i += \'src="http://logv28.xiti.com/hit.xiti?\'+Xt_param.replace(/`/, \'\');
Pour la partie <noscript>, je n'ai pas encore trouvé…

Balise PayPal

PayPal France est la division française de PayPal et permet d'effectuer des transferts électroniques d'argent en toute (?) sécurité. Il est très fréquent de mettre un bouton "Faire un don" qui permet, sur un site gratuit, de laisser une contribution.

Lorsque l'on souhaite faire un don, PayPal fournit un code <FORM> pour déclencher l'affichage de la page ad hoc sur leur site, en ayant déjà prérempli les informations utiles.

Voici l'exemple que j'ai mis sur mon site (merci à Hans, l'auteur de FixFlow, qui m'a envoyé sa version) :

Markup('paypal', '>block', '/\\(:paypal consowiki:\\)/', '
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" />
<input type="hidden" name="cmd" value="_xclick" />
<input type="hidden" name="business" value="Finance@consowiki.org" />
<input type="hidden" name="item_name" value="ConsoWiki" />
<input type="hidden" name="page_style" value="PayPal" />
<input type="hidden" name="no_shipping" value="1" />
<input type="hidden" name="return" value="http://ConsoWiki.org/index.php?n=ConsoWiki.M
erci" />
<input type="hidden" name="cancel_return" value="http://ConsoWiki.org/index.php?n=Cons
oWiki.Dommage" />
<input type="hidden" name="currency_code" value="EUR" />
<input type="hidden" name="tax" value="0" />
<input type="hidden" name="lc" value="FR" />
<input type="hidden" name="bn" value="PP-DonationsBF" />
<input type="image" src="https://www.paypal.com/fr_FR/i/btn/x-click-but04.gif" border="
0" name="submit" alt="Effectuez vos paiements via PayPal&nbsp;: une solution rapide, gr
atuite et sécurisée&nbsp;!" />
</form />');

Les questions et mises à jour au sujet de cette page sont vivement appréciées, vous pouvez les envoyer à Pm?, pmwiki-users (en anglais).


<< Configurer les liens InterMap | Index de la documentation | Styles Wiki personnalisés >>


Traduction de PmWiki.CustomMarkup Page originale sur PmWikiFr.CustomMarkup - Backlinks
Dernières modifications:
PmWikiFr.CustomMarkup: December 16, 2015, at 12:10 PM
PmWiki.CustomMarkup: December 17, 2022, at 02:59 AM

Edit - History - Print - Recent Changes - Search
Page last modified on December 16, 2015, at 12:10 PM