Ejemplo n.º 1
0
            require_once ("diff.inc.php");
            $previous = $this->LoadPageById($page['previous_version']);
            $diff = text_diff_by_lines($previous['body'], $page['body'], false);
            $htmlDiff = "<table style=\"width: 100%;\">";
            $htmlDiff .= "<tr><th colspan=\"2\" style=\"text-align: center;\">Version du " . $previous['time']
                        . "</th><th colspan=\"2\" style=\"text-align: center;\">Version du " . $page['time'] . "</th></tr>";
            foreach ($diff as $line)
            {
                $htmlDiff .= "<tr><td" . ($line['type'] == '+' ? ' colspan="2">&amp;nbsp;' : '>- </td><td>' . htmlspecialchars($line[0],ENT_COMPAT | ENT_HTML401 | ENT_SUBSTITUTE, "ISO8859-1")) . "</td>";
                $htmlDiff .= "<td" . ($line['type'] == '-' ? ' colspan="2">&amp;nbsp;' : '>+ </td><td>' . htmlspecialchars($line[(int) ($line['type'] == 'c')],ENT_COMPAT | ENT_HTML401 | ENT_SUBSTITUTE, "ISO8859-1")) . "</td></tr>";
            }
            $htmlDiff .= "</table>";
            unset($diff);
        }
        else
        {
            $htmlDiff = "<h2>Page cr&eacute;&eacute;e le " . $page['time'] . ":</h2>";
            $htmlDiff .= nl2br(htmlspecialchars($page['body'],ENT_COMPAT | ENT_HTML401 | ENT_SUBSTITUTE, "ISO8859-1"));
        }
        $output .= $htmlDiff . "]]></content:encoded>\n";
        $output .= "</item>\n";
        unset($pages[$i]);
	}	
	//else {$output="La pr&eacute;sente page n'est pas accessible &agrave; tous.";}
	}
	
    $output .= "</channel>\n";
    $output .= "</rss>\n";
    echo demicrosoftize($output) ;
}
?> 
Ejemplo n.º 2
0
/**
 * Clean up the given text
 *
 * @param string $text The text to be cleaned
 * @return string The clean text
 */
function clean_text($text)
{
    global $CFG;
    if (empty($text) or is_numeric($text)) {
        return (string) $text;
    }
    /// Fix non standard entity notations
    $text = preg_replace('/(&#[0-9]+)(;?)/i', "\\1;", $text);
    $text = preg_replace('/(&#x[0-9a-fA-F]+)(;?)/i', "\\1;", $text);
    $text = demicrosoftize($text);
    //$text = swapMicrosoftChars($text);
    require_once $CFG->dirAddress . 'core/lib/htmlpurifier-4.5.0/library/HTMLPurifier.auto.php';
    $config = HTMLPurifier_Config::createDefault();
    $config->set('Core.Encoding', 'utf-8');
    // replace with your encoding
    $config->set('HTML.Doctype', 'XHTML 1.0 Transitional');
    $config->set('HTML.SafeIframe', true);
    $config->set('HTML.SafeEmbed', true);
    $config->set('HTML.SafeObject', true);
    $config->set('Output.FlashCompat', true);
    $config->set('HTML.FlashAllowFullScreen', true);
    //$config->set('HTML.Allowed', 'object[id|codebase|align|classid|width|height|data],param[name|value],embed[src|quality|bgcolor|name|align|pluginspage|type|allowscriptaccess|width|height|wmode|flashvars]');
    $safeurls = '%^(http:|https:)?//(';
    if (isset($CFG->safeurls)) {
        $count = sizeof($CFG->safeurls);
        for ($i = 0; $i < $count; $i++) {
            if ($i == 0) {
                $safeurls .= $CFG->safeurls[$i];
            } else {
                $safeurls .= "|" . $CFG->safeurls[$i];
            }
        }
    } else {
        $safeurls .= 'www.youtube.com/embed/';
        $safeurls .= '|player.vimeo.com/video/';
        $safeurls .= '|cohere.open.ac.uk/';
        $safeurls .= '|www.ustream.tv/';
        $safeurls .= '|www.schooltube.com/';
        $safeurls .= '|archive.org/';
        $safeurls .= '|www.blogtv.com/';
        $safeurls .= '|uk.video.yahoo.com/';
        $safeurls .= '|www.teachertube.com/';
        $safeurls .= '|sciencestage.com/';
        $safeurls .= '|www.flickr.com/';
    }
    $safeurls .= ')%';
    $config->set('URI.SafeIframeRegexp', $safeurls);
    $def = $config->getHTMLDefinition(true);
    $def->addAttribute('object', 'flashvars', 'CDATA');
    $def->addAttribute('object', 'classid', 'CDATA');
    $def->addAttribute('object', 'codebase', 'CDATA');
    $def->addAttribute('object', 'id', 'CDATA');
    $def->addAttribute('object', 'align', 'CDATA');
    // already handled.
    //$def->addAttribute('embed', 'src', 'URI#embedded');
    $def->addAttribute('embed', 'quality', 'CDATA');
    $def->addAttribute('embed', 'name', 'CDATA');
    $def->addAttribute('embed', 'pluginspage', 'CDATA');
    $def->addAttribute('embed', 'align', 'CDATA');
    $def->addAttribute('embed', 'bgcolor', 'CDATA');
    $embedFilter = new HTMLPurifier_URIFilter_SafeEmbed();
    $embedFilter->setRegularExpression($safeurls);
    $objectFilter = new HTMLPurifier_URIFilter_SafeObject();
    $objectFilter->setRegularExpression($safeurls);
    $uri = $config->getDefinition('URI');
    $uri->addFilter($embedFilter, $config);
    $uri->addFilter($objectFilter, $config);
    $purifier = new HTMLPurifier($config);
    $text = $purifier->purify($text);
    return $text;
}