function testOther()
 {
     $wr = new WikiRenderer(new wr3_to_xhtml());
     $source = '<code>foo</code>';
     $expected = '<pre>foo</pre>';
     $result = $wr->render($source);
     $this->assertEqualOrDiff($expected, $result);
     if (!$this->assertEqual(count($wr->errors), 0, "Errors detected by wr ! (%s)")) {
         $this->dump($wr->errors);
     }
     $source = "<code>foo</code>\n__bar__";
     $expected = "<pre>foo</pre>\n<p><strong>bar</strong></p>";
     $result = $wr->render($source);
     $this->assertEqualOrDiff($expected, $result);
     if (!$this->assertEqual(count($wr->errors), 0, "Errors detected by wr ! (%s)")) {
         $this->dump($wr->errors);
     }
     $source = '';
     $expected = '';
     $source = "__bar__\n<code>foo</code>";
     $expected = "<p><strong>bar</strong></p>\n<pre>foo</pre>";
     $result = $wr->render($source);
     $this->assertEqualOrDiff($expected, $result);
     if (!$this->assertEqual(count($wr->errors), 0, "Errors detected by wr ! (%s)")) {
         $this->dump($wr->errors);
     }
 }
示例#2
0
 function testBalisesInlineComplexes()
 {
     $wr = new WikiRenderer(new trac_to_xhtml());
     foreach ($this->listinline2 as $source => $result) {
         $res = $wr->render($source);
         $this->assertEquals($result[1], $res);
         $this->assertEquals($result[0], count($wr->errors), "Nombre d'erreurs différent");
     }
 }
 function testBalisesInlineSimples()
 {
     $wr = new WikiRenderer(new dokuwiki_to_docbook());
     foreach ($this->listinline as $source => $result) {
         $res = $wr->render($source);
         $this->assertEqualOrDiff($res, $result, "erreur");
         $this->assertEqual(count($wr->errors), 0, "WR returns errors ! " . var_export($wr->errors, true) . " (%s)");
     }
 }
 function testSerie()
 {
     include 'dataSeries.php';
     $wr = new WikiRenderer('classicwr_to_xhtml');
     foreach ($list as $k => $t) {
         $res = $wr->render($t[0]);
         $this->assertEquals($t[2], $res);
     }
 }
 function testBalisesInlineSimples()
 {
     $wr = new WikiRenderer(new phpwiki_to_dokuwiki());
     $k = 0;
     foreach ($this->listinline as $source => $result) {
         $k++;
         $res = $wr->render($source);
         $this->assertEquals($result, $res, "erreur on {$k} th test");
         $this->assertEquals(0, count($wr->errors), "WR returns errors ! " . var_export($wr->errors, true));
     }
 }
 function testInlineWikiWord()
 {
     $conf = new classicwr_to_xhtml();
     $conf->checkWikiWordFunction = 'wikiword';
     $wr = new WikiRenderer($conf);
     foreach ($this->listinline2 as $source => $result) {
         $res = $wr->render($source);
         $this->assertEquals($result[1], $res);
         $this->assertEquals($result[0], count($wr->errors), "Nombre d'erreurs différents (%s)");
     }
 }
 function testBalisesInlineComplexes()
 {
     $wr = new WikiRenderer(new wr3_to_xhtml());
     foreach ($this->listinline2 as $source => $result) {
         $res = $wr->render($source);
         if (!$this->assertEqual($res, $result[1], "erreur")) {
             $this->sendMessage('test : ' . $source);
             $this->_showDiff($result[1], $res);
         }
         if (!$this->assertEqual(count($wr->errors), $result[0], "Nombre d'erreurs différents (%s)")) {
             $this->dump($wr->errors);
         }
     }
 }
function s_f_attachments_actionshandler($params)
{
    global $prefs, $user, $tikilib;
    if ($prefs['feature_wiki_attachments'] != 'y') {
        return false;
    }
    /*** Works only for wiki attachments yet ***/
    if (!empty($params['upload']) && empty($params['fileId']) && empty($params['page'])) {
        return false;
    }
    ///FIXME
    if (!empty($params['page'])) {
        require_once "lib/wiki/renderlib.php";
        $info =& $tikilib->get_page_info($params['page']);
        $pageRenderer = new WikiRenderer($info, $user, $info['data']);
        $objectperms = $pageRenderer->applyPermissions();
    }
    global $filegallib;
    include_once 'lib/filegals/filegallib.php';
    foreach ($params as $k => $v) {
        switch ($k) {
            case 'remove':
                /* FIXME
                				check_ticket('index');
                				$owner = $wikilib->get_attachment_owner($_REQUEST['removeattach']);
                				if ( ($user && ($owner == $user) ) || $objectperms->wiki_admin_attachments ) {
                					$access->check_authenticity();
                					$wikilib->remove_wiki_attachment($_REQUEST['removeattach']);
                				}
                				$pageRenderer->setShowAttachments( 'y' );
                			*/
                $filegallib->actionHandler('removeFile', array('fileId' => $v));
                break;
            case 'upload':
                if (isset($objectperms) && ($objectperms->wiki_admin_attachments || $objectperms->wiki_attach_files)) {
                    /* check_ticket('index'); */
                    global $smarty;
                    $smarty->loadPlugin('smarty_function_query');
                    $galleryId = $filegallib->get_attachment_gallery($params['page'], 'wiki page', true);
                    $filegallib->actionHandler('uploadFile', array('galleryId' => array($galleryId), 'comment' => $params['comment'], 'returnUrl' => smarty_function_query(array('_type' => 'absolute_path', 's_f_attachments-upload' => 'NULL', 's_f_attachments-page' => 'NULL', 's_f_attachments-comment' => 'NULL'), $smarty)));
                }
                break;
        }
    }
    return true;
}
 function testBlock()
 {
     $wr = new WikiRenderer('classicwr_to_xhtml');
     foreach ($this->listblocks as $file => $nberror) {
         $sourceFile = 'datasblocks/' . $file . '.src';
         $resultFile = 'datasblocks/' . $file . '.res';
         $handle = fopen($sourceFile, "r");
         $source = fread($handle, filesize($sourceFile));
         fclose($handle);
         $handle = fopen($resultFile, "r");
         $result = fread($handle, filesize($resultFile));
         fclose($handle);
         $res = $wr->render($source);
         $this->assertEquals($result, $res);
         $this->assertEquals($nberror, count($wr->errors), "Erreurs détéctées par wr ! (%s)");
     }
 }
 function testBlock2()
 {
     $wr = new WikiRenderer(new wr3_to_docbook());
     foreach ($this->listblocks2 as $file => $nberror) {
         $sourceFile = 'datasblocks/' . $file . '.src';
         $resultFile = 'datasblocks/' . $file . '.res';
         $handle = fopen($sourceFile, "r");
         $source = fread($handle, filesize($sourceFile));
         fclose($handle);
         $handle = fopen($resultFile, "r");
         $result = fread($handle, filesize($resultFile));
         fclose($handle);
         $res = $wr->render($source);
         $this->assertEqualOrDiff($res, $result, "error on {$file}");
         if (!$this->assertEqual(count($wr->errors), $nberror, "Errors detected by wr ! (%s)")) {
             $this->dump($wr->errors);
         }
     }
 }
示例#11
0
function phorum_wikirenderer($data)
{
    static $wikirenderer = null;
    if ($wikirenderer == null) {
        $wikirenderer = new WikiRenderer('classicwr_to_xhtml');
    }
    foreach ($data as $key => $message) {
        if (isset($message["subject"])) {
            $data[$key]["subject"] = htmlspecialchars($message["subject"]);
        }
        if (isset($message["body"])) {
            $data[$key]["body"] = $wikirenderer->render($message["body"]);
        }
        if (isset($message['signature_author']) && trim($message['signature_author']) != '') {
            $data[$key]['signature_author'] = $wikirenderer->render($message['signature_author']);
        }
    }
    return $data;
}
示例#12
0
 function testBlock()
 {
     $wr = new WikiRenderer(new trac_to_xhtml());
     foreach ($this->listblocks as $file => $nberror) {
         $sourceFile = 'datasblocks/' . $file . '.src';
         $resultFile = 'datasblocks/' . $file . '.res';
         $handle = fopen($sourceFile, "r");
         $source = fread($handle, filesize($sourceFile));
         fclose($handle);
         $handle = fopen($resultFile, "r");
         $result = fread($handle, filesize($resultFile));
         fclose($handle);
         $res = $wr->render($source);
         if ($file == 'wr3_footnote') {
             $conf =& $wr->getConfig();
             $res = str_replace('-' . $conf->footnotesId . '-', '-XXX-', $res);
         }
         $this->assertEquals($result, $res, "erreur sur {$file}");
         $this->assertEquals($nberror, count($wr->errors), "Errors detected by wr");
     }
 }
 function testBlockFiles()
 {
     $wr = new WikiRenderer(new dokuwiki_to_xhtml());
     foreach ($this->listblocks as $file => $nberror) {
         $sourceFile = 'datasblocks/doku_xhtml_' . $file . '.src';
         $resultFile = 'datasblocks/doku_xhtml_' . $file . '.res';
         $handle = fopen($sourceFile, "r");
         $source = fread($handle, filesize($sourceFile));
         fclose($handle);
         $handle = fopen($resultFile, "r");
         $result = fread($handle, filesize($resultFile));
         fclose($handle);
         $res = $wr->render($source);
         if ($file == 'general') {
             $conf =& $wr->getConfig();
             $res = str_replace('-' . $conf->footnotesId . '-', '-XXX-', $res);
         }
         $this->assertEqualOrDiff($res, $result, "error on {$file}");
         if (!$this->assertEqual(count($wr->errors), $nberror, "Errors detected by wr ! (%s)")) {
             $this->dump($wr->errors);
         }
     }
 }
示例#14
0
function Render($strWikiContent)
{
    global $k_aConfig, $k_aLangConfig;
    if ($strWikiContent == '') {
        $strWikiContent = $k_aLangConfig['NoWikiContent'];
    }
    // On utilise le fichier de formatage de la langue s'il existe
    $strFileFormat = $k_aConfig['LanguagePath'] . '/format.php';
    $formatter = null;
    if (file_exists($strFileFormat)) {
        require_once dirname(__FILE__) . '/../' . $strFileFormat;
        if (class_exists('CLanguageFormat')) {
            $formatter = new CLanguageFormat();
        }
    }
    // Modification du contenu wiki par la langue
    if (is_a($formatter, 'CLanguageFormat')) {
        $strWikiContent = $formatter->FormatWiki($strWikiContent);
    }
    // Instanciation de la lib de rendu et rendu wiki
    switch ($k_aConfig['Renderer']) {
        case 'WikiRenderer':
            require_once dirname(__FILE__) . '/WikiRenderer/WikiRenderer.lib.php';
            require_once dirname(__FILE__) . '/WikiRenderer/rules/chu_to_xhtml.php';
            $Renderer = new WikiRenderer('chu_to_xhtml');
            $strHtmlContent = $Renderer->render($strWikiContent);
            break;
        case 'wiki2xhtml':
            require_once dirname(__FILE__) . '/wiki2xhtml/class.wiki2xhtml.chu.php';
            $Renderer = new wiki2xhtmlChu();
            $strHtmlContent = $Renderer->transform($strWikiContent);
            break;
        default:
            Error('Erreur dans le fichier de configuration : Aucun renderer ou mauvais renderer spécifié. Seulement WikiRenderer ou wiki2xhtml sont autorisés.');
            break;
    }
    // Sans PathInfo, il faut mettre un ? devant les liens vers les pages internes
    if ($k_aConfig['UsePathInfo'] != 'true') {
        $strHtmlContent = preg_replace('/href="([^"]*)"/', 'href="?\\1"', $strHtmlContent);
        $strHtmlContent = preg_replace('/href="\\?(\\.\\..*)"/', 'href="\\1"', $strHtmlContent);
        $strHtmlContent = preg_replace('/href="\\?(\\/.*)"/', 'href="\\1"', $strHtmlContent);
        $strHtmlContent = preg_replace('/href="\\?([a-zA-Z]+:.*)"/', 'href="\\1"', $strHtmlContent);
        $strHtmlContent = preg_replace('/href="\\?(#.*)"/', 'href="\\1"', $strHtmlContent);
    }
    if ($k_aConfig['SmileyPath'] != '') {
        require_once dirname(__FILE__) . '/smiley-replacer.php';
        MakeImageSmileys($strHtmlContent);
    }
    // Modification du contenu HTML par la langue
    if (is_a($formatter, 'CLanguageFormat')) {
        $strHtmlContent = $formatter->FormatHtml($strHtmlContent);
    }
    return $strHtmlContent;
}
示例#15
0
<?php

/**
 * Tests unitaires
 *
 * @package wikirenderer
 * @subpackage tests
 * @author Laurent Jouanneau
 * @copyright 2003-2006 Laurent Jouanneau
 */
header('ContentType: text/plain');
require_once 'wikirenderer/WikiRenderer.lib.php';
include 'dataSeries.php';
function getMicroTime()
{
    list($micro, $time) = explode(' ', microtime());
    return $micro + $time;
}
$start = getMicroTime();
$wr = new WikiRenderer('classicwr_to_xhtml');
foreach ($list as $k => $t) {
    $res = $wr->render($t[0]);
}
$stop = getMicroTime();
echo "time=" . intval(($stop - $start) * 1000) / 1000;
示例#16
0
    $thedate = $_SESSION["thedate"];
}
// Get the page from the request var or default it to HomePage
if (!isset($_REQUEST["page"])) {
    $_REQUEST["page"] = $wikilib->get_default_wiki_page();
}
$page = $_REQUEST['page'];
$smarty->assign('page', $page);
// If the page doesn't exist then display an error
if (!($info = $tikilib->get_page_info($page))) {
    $smarty->assign('msg', tra("Page cannot be found"));
    $smarty->display("error_raw.tpl");
    die;
}
require_once 'lib/wiki/renderlib.php';
$pageRenderer = new WikiRenderer($info, $user);
$objectperms = $pageRenderer->applyPermissions();
if ($prefs['flaggedrev_approval'] == 'y' && isset($_REQUEST['latest']) && $objectperms->wiki_view_latest) {
    $pageRenderer->forceLatest();
}
$access->check_permission('tiki_p_view', '', 'wiki page', $page);
// BreadCrumbNavigation here
// Remember to reverse the array when posting the array
if (!isset($_SESSION["breadCrumb"])) {
    $_SESSION["breadCrumb"] = array();
}
if (!in_array($page, $_SESSION["breadCrumb"])) {
    if (count($_SESSION["breadCrumb"]) > $prefs['userbreadCrumb']) {
        array_shift($_SESSION["breadCrumb"]);
    }
    array_push($_SESSION["breadCrumb"], $page);
示例#17
0
</textarea></label>
<br />
<label>Transformation en :
<?php 
showRuleList();
?>
</label>
<input type="button" value="editer un exemple" onclick="exemple()" />
<br />
<input type="submit" value="Valider et voir la transformation" />
</fieldset>
</form>

<?php 
if ($texte != '') {
    $ctr = new WikiRenderer($rule);
    echo '<h2 id="resultats">Source du resultat:</h2>';
    $texte = $ctr->render($texte);
    if ($ctr->errors) {
        echo '<p style="color:red;">Il y a ';
        if (count($ctr->errors) > 1) {
            echo 'des erreurs wiki aux lignes : ', implode(',', array_keys($ctr->errors)), '</p>';
        } else {
            list($num, $l) = each($ctr->errors);
            echo 'une erreur wiki à la ligne ', $num, '</p>';
        }
    }
    $texte2 = htmlspecialchars($texte);
    echo '<pre style="overflow:auto">';
    echo $texte2;
    echo '</pre>', "\n\n";
<html>
<html><head><title>plop</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

</style>
</head>
<body>
<?php 
define('WR_DIR', realpath(dirname(__FILE__) . '/wikirenderer/') . '/');
require_once 'wikirenderer/WikiRenderer.lib.php';
require_once WR_DIR . 'rules/dokuwiki_to_xhtml.php';
$wr = new WikiRenderer(new dokuwiki_to_xhtml());
$sourceFile = 'datasblocks/pw_dk_1.res';
$source = file_get_contents($sourceFile);
echo $wr->render($source);
?>
</body>
</html>
示例#19
0
//$translatedWikiMarkup = '';
//if (isset($_REQUEST['machine_translate_to_lang'])) {
//	$translatedWikiMarkup = generate_machine_translated_markup($info, $_REQUEST['machine_translate_to_lang']);
//}
if (isset($_REQUEST['approve'], $_REQUEST['revision']) && $_REQUEST['revision'] <= $info['version']) {
    global $flaggedrevisionlib;
    require_once 'lib/wiki/flaggedrevisionlib.php';
    if ($flaggedrevisionlib->page_requires_approval($page)) {
        $perms = Perms::get('wiki page', $page);
        if ($perms->wiki_approve) {
            $flaggedrevisionlib->flag_revision($page, $_REQUEST['revision'], 'moderation', 'OK');
        }
    }
    $access->redirect($wikilib->sefurl($page));
}
$pageRenderer = new WikiRenderer($info, $user);
$objectperms = $pageRenderer->applyPermissions();
if ($prefs['flaggedrev_approval'] == 'y' && isset($_REQUEST['latest']) && $objectperms->wiki_view_latest) {
    $pageRenderer->forceLatest();
}
$pageCache = Tiki_PageCache::create()->disableForRegistered()->onlyForGet()->requiresPreference('memcache_wiki_output')->addValue('role', 'wiki-page-output')->addValue('page', $page)->addValue('locale', $prefs['language'])->addKeys($_REQUEST, array('style_mode'))->checkMeta('wiki-page-output-meta-timestamp', array('page' => $page))->applyCache();
if ($page_ref_id) {
    $pageRenderer->setStructureInfo($page_info);
}
// Now check permissions to access this page
if (!$pageRenderer->canView) {
    $access->display_error($page, tra('You do not have permission to view this page.'), '401');
}
// Convert page to structure
if (isset($_REQUEST['convertstructure']) && isset($structs) && count($structs) == 0) {
    $page_ref_id = $structlib->s_create_page(0, null, $page);
示例#20
0
<?php

require '../tests/wikirenderer/WikiRenderer.lib.php';
$texte = '';
if (isset($_POST['texte'])) {
    if (get_magic_quotes_gpc()) {
        $texte = stripslashes($_POST['texte']);
    } else {
        $texte = $_POST['texte'];
    }
}
$ctr = new WikiRenderer();
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr">
<head>
   <title>WikiRenderer</title>
   <link rel="stylesheet" href="exemple.css" media="all" type="text/css" />
</head>
<body>

<script type="text/javascript">
<!--
function exemple(){
   document.test.texte.value="!!! titre\n!! sous-titre\n! sous-sous-titre\n\nLorem __ipsum dolor__ sit amet, ''consectetuer adipiscing'' elit. Ut scelerisque. Ut iaculis ultrices nulla. Cras viverra diam nec justo.\n\n* Phasellus non eros sit amet sem tristique laoreet. \n*# Nam mi wisi, pellentesque dictum, \n*# tristique in, tristique quis, erat. \n*## In in erat ut urna vulputate vestibulum. Aenean justo. \n*## In quis nisl. \n* Morbi justo libero, pharetra a, \n* malesuada eget, lacinia in, ligula.\n\nMauris [sit amet massa|http://ljouanneau.com|fr|at neque] pretium dapibus.\n\n| Nulla metus felis | tristique non\n| 1 | 2\n| 5 | 7\n\ncursus et, @@vulputate in@@, eros. \n Phasellus ??placerat|semper neque??.\n In hac habitasse platea dictumst. \n\nFusce sagittis, mi eu elementum lobortis, augue enim tristique ante, sed varius urna mauris sed erat.\n====\nPraesent pellentesque, ^^augue at| consectetuer imperdiet^^, mi metus {{dignissim arcu}}, sed sodales quam risus eu neque. \n\nPellentesque euismod. \n> Curabitur mi. Aenean vitae lectus vel turpis feugiat egestas. \n> Quisque diam. Maecenas tincidunt tortor sed neque. \n\nMauris nibh. Vivamus tempus est in urna. \n\n;Curabitur et arcu : non odio gravida varius. Vivamus fringilla, neque ac suscipit vehicula, libero metus laoreet libero, in gravida purus nunc quis orci. \n;Duis : non mi non lacus tincidunt iaculis. \n;Aliquam tempor : metus in cursus dapibus, purus ipsum consequat quam, et vehicula libero velit sit amet felis. Sed id leo. \n\nVivamus orci leo, dictum et, scelerisque sed, pretium et, dolor. Aenean pharetra felis pellentesque dui. Donec neque. Duis tristique. Pellentesque at eros";
}
//-->
</script>

<h2>Tester Wikirenderer <?php 
 function testBlockFiles()
 {
     $wr = new WikiRenderer(new phpwiki_to_dokuwiki());
     foreach ($this->listblocks as $file => $nberror) {
         $sourceFile = 'datasblocks/pw_dk_' . $file . '.src';
         $resultFile = 'datasblocks/pw_dk_' . $file . '.res';
         $source = file_get_contents($sourceFile);
         $result = file_get_contents($resultFile);
         $res = $wr->render($source);
         $this->assertEquals($result, $res, "error on {$file}");
         $this->assertEquals($nberror, count($wr->errors), "Errors detected by wr");
     }
 }
$show_langs_side_by_side = false;
if (count($pages) >= 2) {
   // If only two languages, its best to show 
   // them side by side for easier comparison
   // (as opposed to one on top of the other).
   // But for more than two languages, side by
   // side is not possible, cause not enough real estate
   $show_langs_side_by_side = true;
}


foreach ( array_reverse($pages) as $id => $info ) {
	$page = $info['pageName'];
	$section = 'wiki page';

	$renderer = new WikiRenderer($info, $user);
	$renderer->applyPermissions();

	if ( $tiki_p_view == 'y' ) {
		$renderer->runSetups();

		$contents[] = $smarty->fetch('tiki-show_page.tpl');

		if ( $id === count($pages) - 1 )
			$renderer->restoreAll();
	}
}

$contents = array_reverse($contents);

$smarty->assign('metatag_robots', 'NOINDEX, NOFOLLOW');
 function testBlockFiles()
 {
     $wr = new WikiRenderer(new phpwiki_to_dokuwiki());
     foreach ($this->listblocks as $file => $nberror) {
         $sourceFile = 'datasblocks/pw_dk_' . $file . '.src';
         $resultFile = 'datasblocks/pw_dk_' . $file . '.res';
         $source = file_get_contents($sourceFile);
         $result = file_get_contents($resultFile);
         $res = $wr->render($source);
         $this->assertEqualOrDiff($result, $res, "error on {$file}");
         echo '<!--' . $res . '-->';
         if (!$this->assertEqual(count($wr->errors), $nberror, "Errors detected by wr ! (%s)")) {
             $this->dump($wr->errors);
         }
     }
 }