Traduction Menu de la version anglaise
|
Balises personnaliséesLa 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 Par exemple, le code qui crée la règle pour 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 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 -- " 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 Markup("@@","inline","/@@(.*?)@@/","<code>$1</code>"); et pour une directive Markup("comment","directives","/\\[:comment .*?:\\]/",''); Ok, maintenant à propos de la règle pour 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 " 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 : une solution rapide, gr atuite et sécurisée !" /> </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 doc admin | Styles Wiki personnalisés >>
|