1
0
mirror of https://github.com/moodle/moodle.git synced 2025-05-16 05:00:01 +02:00

Changed the name of all filters to be consistent.

Removed texh filter
This commit is contained in:
moodler 2004-02-17 05:22:26 +00:00
parent 830e238d58
commit 4da85078e9
5 changed files with 18 additions and 140 deletions
filter
censor
mediaplugin
multilang
tex
texh

@ -6,9 +6,9 @@
// printed text, replacing words with other words
//
// To activate this filter, add a line like this to your
// config.php:
// list of filters in your Filter configuration:
//
// $CFG->textfilter1 = 'filter/censor/censor.php';
// filter/censor/filter.php
//
//////////////////////////////////////////////////////////////

@ -5,10 +5,10 @@
// This filter will replace any links to a media file with
// a media plugin that plays that media inline
//
// To activate this filter, add his to your list of filters
// in Admin -> Configuration -> Variables
// To activate this filter, add a line like this to your
// list of filters in your Filter configuration:
//
// filter/mediaplugin/mediaplugin.php';
// filter/mediaplugin/filter.php
//
//////////////////////////////////////////////////////////////

@ -22,6 +22,11 @@
// //
///////////////////////////////////////////////////////////////////////////
// //
// To activate this filter, add a line like this to your //
// list of filters in your Filter configuration: //
// //
// filter/multilang/filter.php //
// //
// See README.txt for more information about this module //
// //
///////////////////////////////////////////////////////////////////////////

@ -24,13 +24,17 @@
// NOTE: This Moodle text filter converts TeX expressions delimited
// by either $$...$$ or by <tex...>...</tex> tags to gif images using
// mimetex.cgi obtained from http://www.forkosh.com/mimetex.html authored by
// John Forkosh john@forkosh.com. The mimetex.cgi ELF binary compiled for Linux i386
// is included with this distribution.
// John Forkosh john@forkosh.com. Several binaries of this areincluded with
// this distribution.
// Note that there may be patent restrictions on the production of gif images
// in Canada and some parts of Western Europe and Japan until July 2004.
//-------------------------------------------------------------------------
// You will then need to edit your moodle/config.php to invoke tex_filter.php
//-------------------------------------------------------------------------
/////////////////////////////////////////////////////////////////////////////
// To activate this filter, add a line like this to your //
// list of filters in your Filter configuration: //
// //
// filter/tex/filter.php //
/////////////////////////////////////////////////////////////////////////////
$CFG->texfilterdir = "filter/tex";

@ -1,131 +0,0 @@
<?php
///////////////////////////////////////////////////////////////////////////
// //
// NOTICE OF COPYRIGHT //
// //
// TeXH - convert TeX code in <tex> tags into images, using HeVeA //
// //
// Copyright (C) 2001-2003 Bruno Vernier bruno@vsbeducation.ca //
// //
// This program is free software; you can redistribute it and/or modify //
// it under the terms of the GNU General Public License as published by //
// the Free Software Foundation; either version 2 of the License, or //
// (at your option) any later version. //
// //
// This program is distributed in the hope that it will be useful, //
// but WITHOUT ANY WARRANTY; without even the implied warranty of //
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
// GNU General Public License for more details: //
// //
// http://www.gnu.org/copyleft/gpl.html //
// //
///////////////////////////////////////////////////////////////////////////
//-------------------------------------------------------------------------
//
// README PREREQUISITES:
//
// 1: install HeVeA on your server http://pauillac.inria.fr/~maranget/hevea/
// (debian and rpm available) (it is a TeX to HTML/MathML filter)
//
// 2: must include this file "texh.php" in the filters in config.php
//
// 3: must include TEX in the legal tags list in lib/weblib.php
// CAVEAT: if above not yet done, <TEX> gets converted to &lt;TEX&gt;
// and can only be fixed by editing in HTML conversion mode
//
// 4: if you are using Windows then the hevea.bat file that comes with the
// windows distribution needs to have the line
// if "%1"=="" goto syn
// removed.
//
//-------------------------------------------------------------------------
/// These lines are important - the variable must match the name
/// of the actual function below
$textfilter_function='texh_filter';
if (function_exists($textfilter_function)) {
return;
}
function texh_pipe_cmd($cmd, $text) {
// general function for external system calls to $cmd, piping in $text, retrieving output
// taken mostly from a php tutorial on php.net website (modified slightly)
$spec = array(
0 => array("pipe", "r"), // stdin
1 => array("pipe", "w"), // stdout
);
$process = proc_open($cmd , $spec, $pipes);
$output="";
if (is_resource($process)) {
fwrite($pipes[0], $text);
fclose($pipes[0]);
while (!feof($pipes[1])) {
$buffer = fgets($pipes[1], 1024);
$output .= $buffer;
}
fclose($pipes[1]);
proc_close($process);
}
return $output;
}
function texh_filter ($courseid, $text) {
// TeX conversion with $$ tex code $$
// written by Bruno Vernier (c) 2004 GPL
/// Do a quick check using stripos to avoid unnecessary work
if (!(stripos($text, '<tex') or stripos($text, '$$'))) {
return $text;
}
if (isadmin()) { error_reporting (E_ALL); }; //for debugging
// <TEX> some general TeX expression </TEX>
preg_match_all('/<tex>(.+?)<\/tex>/is', $text, $matches);
for ($i=0; $i<count($matches[0]); $i++) {
$pipe = texh_pipe_cmd("hevea",$matches[1][$i]); // take the content only (non-math TeX expected)
$text = str_replace( $matches[0][$i], $pipe, $text);
}
// $$ some MATHEMATICAL TeX expression $$
preg_match_all('/\$\$(.+?)\$\$/', $text, $matches);
for ($i=0; $i<count($matches[0]); $i++) {
$pipe = texh_pipe_cmd("hevea",$matches[0][$i]); // take everything since the $$ is part of the TeX syntax for math
$text = str_replace( $matches[0][$i], $pipe, $text);
}
return $text;
}
// Various Notes and Possibilities for Developers only:
// Note to self: the following did not work consistently:
// $text = preg_replace('/\$\$(.*?)\$\$/', texh_pipe_cmd('hevea',"\\$0"), $text);
// whereas this seems to work consistently:
// $text = str_replace( $matches[0][$i], texh_pipe_cmd("hevea",$matches[0][$i]), $text);
// TODO:
//
// - user-friendly guide to inputting TeX (at least enough for up to high school level math)
// - caveat regarding square-roots and roots being converted to fractional exponents
// - integrate memaid http://memaid.sourceforge.net
// - compile a list of useful shortcuts and shorthands worth doing here
// future possibilities
// $text = str_replace("my_marks", "my marks are ...%", $text); // insert SQL/php_function results here
// $text = str_replace("my_uptime", "uptime: ". shell_exec("/usr/bin/uptime") , $text); // a shortcut to a safe system call
// $text = preg_replace("/vernier/", "Mr. Bruno Vernier" , $text); // a shortcut expanded
// Version 0.1 Jan 24,2004
?>