*/ if(!defined('DOKU_INC')) define('DOKU_INC',realpath(dirname(__FILE__).'/../').'/'); /** * Returns the (known) extension and mimetype of a given filename * * @author Andreas Gohr */ function mimetype($file){ $ret = array(false,false); // return array $mtypes = getMimeTypes(); // known mimetypes $exts = join('|',array_keys($mtypes)); // known extensions (regexp) if(preg_match('#\.('.$exts.')$#i',$file,$matches)){ $ext = strtolower($matches[1]); } if($ext && $mtypes[$ext]){ $ret = array($ext, $mtypes[$ext]); } return $ret; } /** * returns a hash of mimetypes * * @author Andreas Gohr */ function getMimeTypes() { static $mime = NULL; if ( !$mime ) { $mime = confToHash(DOKU_CONF.'mime.conf'); if (@file_exists(DOKU_CONF.'mime.local.conf')) { $local = confToHash(DOKU_CONF.'mime.local.conf'); $mime = array_merge($mime, $local); } } return $mime; } /** * returns a hash of acronyms * * @author Harry Fuecks */ function getAcronyms() { static $acronyms = NULL; if ( !$acronyms ) { $acronyms = confToHash(DOKU_CONF.'acronyms.conf'); if (@file_exists(DOKU_CONF.'acronyms.local.conf')) { $local = confToHash(DOKU_CONF.'acronyms.local.conf'); $acronyms = array_merge($acronyms, $local); } } return $acronyms; } /** * returns a hash of smileys * * @author Harry Fuecks */ function getSmileys() { static $smileys = NULL; if ( !$smileys ) { $smileys = confToHash(DOKU_CONF.'smileys.conf'); if (@file_exists(DOKU_CONF.'smileys.local.conf')) { $local = confToHash(DOKU_CONF.'smileys.local.conf'); $smileys = array_merge($smileys, $local); } } return $smileys; } /** * returns a hash of entities * * @author Harry Fuecks */ function getEntities() { static $entities = NULL; if ( !$entities ) { $entities = confToHash(DOKU_CONF.'entities.conf'); if (@file_exists(DOKU_CONF.'entities.local.conf')) { $local = confToHash(DOKU_CONF.'entities.local.conf'); $entities = array_merge($entities, $local); } } return $entities; } /** * returns a hash of interwikilinks * * @author Harry Fuecks */ function getInterwiki() { static $wikis = NULL; if ( !$wikis ) { $wikis = confToHash(DOKU_CONF.'interwiki.conf',true); if (@file_exists(DOKU_CONF.'interwiki.local.conf')) { $local = confToHash(DOKU_CONF.'interwiki.local.conf'); $wikis = array_merge($wikis, $local); } } //add sepecial case 'this' $wikis['this'] = DOKU_URL.'{NAME}'; return $wikis; } /** * returns array of wordblock patterns * */ function getWordblocks() { static $wordblocks = NULL; if ( !$wordblocks ) { $wordblocks = file(DOKU_CONF.'wordblock.conf'); if (@file_exists(DOKU_CONF.'wordblock.local.conf')) { $local = file(DOKU_CONF.'wordblock.local.conf'); $wordblocks = array_merge($wordblocks, $local); } } return $wordblocks; } /** * Builds a hash from a configfile * * If $lower is set to true all hash keys are converted to * lower case. * * @author Harry Fuecks * @author Andreas Gohr */ function confToHash($file,$lower=false) { $conf = array(); $lines = @file( $file ); if ( !$lines ) return $conf; foreach ( $lines as $line ) { //ignore comments $line = preg_replace('/(? * @returns boolean true if enabled, false if disabled */ function actionOK($action){ static $disabled = null; if(is_null($disabled)){ global $conf; // prepare disabled actions array and handle legacy options $disabled = explode(',',$conf['disableactions']); $disabled = array_map('trim',$disabled); if(isset($conf['openregister']) && !$conf['openregister']) $disabled[] = 'register'; if(isset($conf['resendpasswd']) && !$conf['resendpasswd']) $disabled[] = 'resendpwd'; $disabled = array_unique($disabled); } return !in_array($action,$disabled); } //Setup VIM: ex: et ts=2 enc=utf-8 :