Action TEX
Si vous ne pouvez pas installer ce qu'il faut sur votre serveur pour faire fonctionner les formules TEX (
ForumulesMathExemple), une autre solution pourra vous permettre de créer vos formules dans le wiki.
Aide à propos de TEX:
http://refcards.com/docs/silvermanj/tex/tex-refcard-letter.pdf
L'action se nomme «tex» et on a à entrer une formule mathématique sous forme TEX dans le critère f.
Exemple: {{tex f="\Delta{y}=y_i+v_{yi}t+\frac{1}{2}at^2"}}
donne:
L'action utilise cet API de Google:
https://developers.google.com/chart/infographics/docs/formulas
Code de l'action:
<?php
if (empty($vars['f'])) {echo "Pas de critère f!";}
else {
$txt=$vars['f'];
if ($vars['class']=="") { $laclass="nul";} else {$laclass="attach_".$vars['class'];}
$urlmst = $this->config[url_site];
if (!function_exists("tex"))
{
/**
* Filtre pour générer un QRCode à partir d'un texte
*/
function tex ( $txt, $dim=120 )
{
// S'il existe pas on crée le répertoire qui va accueillir nos QRCodes
if ( !is_dir("cache-tex/" ) )
{
if ( !mkdir ( "cache-tex/", 0775 ) )
{
return "impossible de creer le repertoire" ;
}
}
// l'url du service web de Google qui va bien
$url = 'http://chart.apis.google.com/chart';
// On colle dans un tableau les arguments pour la requète
$args = array( "cht"=>"tx",
"chl"=>rawurldecode(urlencode($txt))
);
// On crée le context pour la requète
$context = stream_context_create( array(
'http' => array(
'method' => 'POST',
'content' => http_build_query($args)
)
)
);
// Ici on va générer un nom et un chemin pour notre fichier final
$hash = md5(serialize($txt));
$fichier = "cache-tex/qrcode-$hash.png";
// Si notre fichier n'existe pas on requète le service et on crée le fichier
if ( !is_file( $fichier ) ){
file_put_contents( $fichier, file_get_contents( $url, false, $context ) );
}
// On retourne un tag image avec la source qui va bien
//return "<img src=\"$fichier\" alt='qrcode' width='$dim' height='$dim' class='middle' />";
return "$fichier";
}
}
$fichier= tex($txt);
echo "<div class='$laclass'>";
echo "<img src=\"".$urlmst."$fichier\" alt='tex' class='middle' />";
echo "</div>";
}
?>
