Запрос схемы IRC URI для очистителя HTML 4.2.0 - PullRequest
2 голосов
/ 06 февраля 2011

Может кто-нибудь помочь мне установить использование IRC URI Scheme для HTML Purifier 4.2.0?Кажется, я не могу понять, как настроить или какие файлы изменить, чтобы в очищенном html можно было использовать irc: // links.

Возможно ли просто изменить конфигурацию в следующем блоке кода?

require_once "htmlpurifier-4.2.0/library/HTMLPurifier.standalone.php";
$purifier_config = HTMLPurifier_Config::createDefault();
$purifier_config->set("HTML.Doctype", "XHTML 1.0 Strict");
$purifier = new HTMLPurifier($purifier_config);

Обновление:

Я отредактировал библиотеку / standalone / HTMLPurifier / ConfigSchema / schema.ser, изменив оба экземпляра "4: nntp" на "3: irc" и обнаружил ошибку:

Предупреждение: каталог htmlpurifier-4.2.0 / library / standalone / HTMLPurifier / DefinitionCache / Serializer / URI недоступен для записи, пожалуйста, выполните команду chmod для 777

Я считаю, что это поможет установить поддержку схемы IRC URI после выполненияэто изменение.Я доложу немного позже.

Хм, после того, как сделать его доступным для записи, ошибки не появилось, но результатов нет = \

1 Ответ

1 голос
/ 22 февраля 2011

HTML Purifier не имеет встроенной поддержки схемы IRC. Но: вы пробовали что-то подобное? Поместите это в /library/HTMLPurifier/URIScheme, или иначе убедитесь, что автозагрузка находит это:

class HTMLPurifier_URIScheme_irc extends HTMLPurifier_URIScheme {

    public $default_port = 6667;
    public $browsable = false;

    public function validate(&$uri, $config, $context) {
        if (parent::validate($uri, $config, $context) === false) {
            return false;
        }
        if (!is_null($uri->path)) {
            // get channel name
            $uri->path = array_shift(explode('/', $uri->path));
        }
        $uri->userinfo = null;
        $uri->query    = null;
        $uri->fragment = null;
        return true;
    }

}

... и измените свою конфигурацию с помощью ...

$purifier->config->set(
    'URI.AllowedSchemes',
    array('irc' => true, /* ... other schemes here ... */)
);

Это может не работать из коробки, но я думаю, что это должно быть правильное направление ...

...