2011-02-06 62 views
2

有人可以幫助我建立使用HTML淨化器4.2.0的IRC URI方案嗎?我似乎無法弄清楚如何配置或修改哪些文件,以便純化的html允許使用irc://鏈接。請求HTML淨化器4.2.0的IRC URI方案

是否有可能我可以簡單地修改下面的代碼塊中的配置?

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); 

更新:

我編輯庫/獨立/ HTMLPurifier/ConfigSchema/schema.ser改變的兩個實例 「4:NNTP」 到 「3:IRC」 和發現錯誤:

警告:目錄htmlpurifier-4.2.0/library/standalone/HTMLPurifier/DefinitionCache/Serializer/URI不可寫,請chmod到777

我相信這將有助於在做出此更改後建立對IRC URI方案的支持。我會稍微報告一下。

嗯,使得它可寫後,沒有錯誤出現,但沒有結果似乎= \

回答

1

HTML淨化器並不具備的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 ... */) 
); 

這可能不起作用開箱即用,但我我認爲這應該是正確的方向...

+1

如果你再次瀏覽一遍,你可以[檢查我的編輯](http://stackoverflow.com/revisions/5078411/2)? – 2012-05-15 17:35:53