mirror of
https://github.com/VladPolskiy/dokuwiki.git
synced 2025-07-25 15:59:39 +00:00
Make recognized URL schemes customizable via conf/scheme.conf (FS#797)
darcs-hash:20081012155022-2b4f5-177571b9b176bb822015623b62b4d35b98a93d7b.gz
This commit is contained in:
11
conf/scheme.conf
Normal file
11
conf/scheme.conf
Normal file
@ -0,0 +1,11 @@
|
||||
#Add URL schemes you want to be recognized as links here
|
||||
|
||||
http
|
||||
https
|
||||
telnet
|
||||
gopher
|
||||
wais
|
||||
ftp
|
||||
ed2k
|
||||
irc
|
||||
ldap
|
@ -132,6 +132,21 @@ function getWordblocks() {
|
||||
}
|
||||
|
||||
|
||||
function getSchemes() {
|
||||
static $schemes = NULL;
|
||||
if ( !$schemes ) {
|
||||
$schemes = file(DOKU_CONF.'scheme.conf');
|
||||
if (@file_exists(DOKU_CONF.'scheme.local.conf')) {
|
||||
$local = file(DOKU_CONF.'scheme.local.conf');
|
||||
$schemes = array_merge($schemes, $local);
|
||||
}
|
||||
}
|
||||
$schemes = array_map('trim', $schemes);
|
||||
$schemes = preg_replace('/^#.*/', '', $schemes);
|
||||
$schemes = array_filter($schemes);
|
||||
return $schemes;
|
||||
}
|
||||
|
||||
/**
|
||||
* Builds a hash from a configfile
|
||||
*
|
||||
|
@ -845,7 +845,7 @@ class Doku_Parser_Mode_rss extends Doku_Parser_Mode {
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
class Doku_Parser_Mode_externallink extends Doku_Parser_Mode {
|
||||
var $schemes = array('http','https','telnet','gopher','wais','ftp','ed2k','irc','ldap');
|
||||
var $schemes = array();
|
||||
var $patterns = array();
|
||||
|
||||
function preConnect() {
|
||||
@ -857,13 +857,13 @@ class Doku_Parser_Mode_externallink extends Doku_Parser_Mode {
|
||||
$host = $ltrs.$punc;
|
||||
$any = $ltrs.$gunk.$punc;
|
||||
|
||||
$this->schemes = getSchemes();
|
||||
foreach ( $this->schemes as $scheme ) {
|
||||
$this->patterns[] = '\b(?i)'.$scheme.'(?-i)://['.$any.']+?(?=['.$punc.']*[^'.$any.'])';
|
||||
}
|
||||
|
||||
$this->patterns[] = '\b(?i)www?(?-i)\.['.$host.']+?\.['.$host.']+?['.$any.']+?(?=['.$punc.']*[^'.$any.'])';
|
||||
$this->patterns[] = '\b(?i)ftp?(?-i)\.['.$host.']+?\.['.$host.']+?['.$any.']+?(?=['.$punc.']*[^'.$any.'])';
|
||||
|
||||
}
|
||||
|
||||
function connectTo($mode) {
|
||||
|
Reference in New Issue
Block a user