[ Index ]
 

Code source de DokuWiki 2006-11-06

Accédez au Source d'autres logiciels libresSoutenez Angelica Josefina !

title

Body

[fermer]

/inc/ -> confutils.php (source)

   1  <?php
   2  /**
   3   * Utilities for collecting data from config files
   4   *
   5   * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
   6   * @author     Harry Fuecks <hfuecks@gmail.com>
   7   */
   8  
   9    if(!defined('DOKU_INC')) define('DOKU_INC',realpath(dirname(__FILE__).'/../').'/');
  10  
  11  /**
  12   * Returns the (known) extension and mimetype of a given filename
  13   *
  14   * @author Andreas Gohr <andi@splitbrain.org>
  15   */
  16  function mimetype($file){
  17    $ret    = array(false,false); // return array
  18    $mtypes = getMimeTypes();     // known mimetypes
  19    $exts   = join('|',array_keys($mtypes));  // known extensions (regexp)
  20    if(preg_match('#\.('.$exts.')$#i',$file,$matches)){
  21      $ext = strtolower($matches[1]);
  22    }
  23  
  24    if($ext && $mtypes[$ext]){
  25      $ret = array($ext, $mtypes[$ext]);
  26    }
  27  
  28    return $ret;
  29  }
  30  
  31  /**
  32   * returns a hash of mimetypes
  33   *
  34   * @author Andreas Gohr <andi@splitbrain.org>
  35   */
  36  function getMimeTypes() {
  37    static $mime = NULL;
  38    if ( !$mime ) {
  39      $mime = confToHash(DOKU_CONF.'mime.conf');
  40      if (@file_exists(DOKU_CONF.'mime.local.conf')) {
  41        $local = confToHash(DOKU_CONF.'mime.local.conf');
  42        $mime = array_merge($mime, $local);
  43      }
  44    }
  45    return $mime;
  46  }
  47  
  48  /**
  49   * returns a hash of acronyms
  50   *
  51   * @author Harry Fuecks <hfuecks@gmail.com>
  52   */
  53  function getAcronyms() {
  54    static $acronyms = NULL;
  55    if ( !$acronyms ) {
  56      $acronyms = confToHash(DOKU_CONF.'acronyms.conf');
  57      if (@file_exists(DOKU_CONF.'acronyms.local.conf')) {
  58        $local = confToHash(DOKU_CONF.'acronyms.local.conf');
  59        $acronyms = array_merge($acronyms, $local);
  60      }
  61    }
  62    return $acronyms;
  63  }
  64  
  65  /**
  66   * returns a hash of smileys
  67   *
  68   * @author Harry Fuecks <hfuecks@gmail.com>
  69   */
  70  function getSmileys() {
  71    static $smileys = NULL;
  72    if ( !$smileys ) {
  73      $smileys = confToHash(DOKU_CONF.'smileys.conf');
  74      if (@file_exists(DOKU_CONF.'smileys.local.conf')) {
  75        $local = confToHash(DOKU_CONF.'smileys.local.conf');
  76        $smileys = array_merge($smileys, $local);
  77      }
  78    }
  79    return $smileys;
  80  }
  81  
  82  /**
  83   * returns a hash of entities
  84   *
  85   * @author Harry Fuecks <hfuecks@gmail.com>
  86   */
  87  function getEntities() {
  88    static $entities = NULL;
  89    if ( !$entities ) {
  90      $entities = confToHash(DOKU_CONF.'entities.conf');
  91      if (@file_exists(DOKU_CONF.'entities.local.conf')) {
  92        $local = confToHash(DOKU_CONF.'entities.local.conf');
  93        $entities = array_merge($entities, $local);
  94      }
  95    }
  96    return $entities;
  97  }
  98  
  99  /**
 100   * returns a hash of interwikilinks
 101   *
 102   * @author Harry Fuecks <hfuecks@gmail.com>
 103   */
 104  function getInterwiki() {
 105    static $wikis = NULL;
 106    if ( !$wikis ) {
 107      $wikis = confToHash(DOKU_CONF.'interwiki.conf',true);
 108      if (@file_exists(DOKU_CONF.'interwiki.local.conf')) {
 109        $local = confToHash(DOKU_CONF.'interwiki.local.conf');
 110        $wikis = array_merge($wikis, $local);
 111      }
 112    }
 113    //add sepecial case 'this'
 114    $wikis['this'] = DOKU_URL.'{NAME}';
 115    return $wikis;
 116  }
 117  
 118  /**
 119   * returns array of wordblock patterns
 120   *
 121   */
 122  function getWordblocks() {
 123    static $wordblocks = NULL;
 124    if ( !$wordblocks ) {
 125      $wordblocks = file(DOKU_CONF.'wordblock.conf');
 126      if (@file_exists(DOKU_CONF.'wordblock.local.conf')) {
 127        $local = file(DOKU_CONF.'wordblock.local.conf');
 128        $wordblocks = array_merge($wordblocks, $local);
 129      }
 130    }
 131    return $wordblocks;
 132  }
 133  
 134  
 135  /**
 136   * Builds a hash from a configfile
 137   *
 138   * If $lower is set to true all hash keys are converted to
 139   * lower case.
 140   *
 141   * @author Harry Fuecks <hfuecks@gmail.com>
 142   * @author Andreas Gohr <andi@splitbrain.org>
 143   */
 144  function confToHash($file,$lower=false) {
 145    $conf = array();
 146    $lines = @file( $file );
 147    if ( !$lines ) return $conf;
 148  
 149    foreach ( $lines as $line ) {
 150      //ignore comments
 151      $line = preg_replace('/(?<!&)#.*$/','',$line);
 152      $line = trim($line);
 153      if(empty($line)) continue;
 154      $line = preg_split('/\s+/',$line,2);
 155      // Build the associative array
 156      if($lower){
 157        $conf[strtolower($line[0])] = $line[1];
 158      }else{
 159        $conf[$line[0]] = $line[1];
 160      }
 161    }
 162  
 163    return $conf;
 164  }
 165  
 166  /**
 167   * check if the given action was disabled in config
 168   *
 169   * @author Andreas Gohr <andi@splitbrain.org>
 170   * @returns boolean true if enabled, false if disabled
 171   */
 172  function actionOK($action){
 173    static $disabled = null;
 174    if(is_null($disabled)){
 175      global $conf;
 176  
 177      // prepare disabled actions array and handle legacy options
 178      $disabled = explode(',',$conf['disableactions']);
 179      $disabled = array_map('trim',$disabled);
 180      if(isset($conf['openregister']) && !$conf['openregister']) $disabled[] = 'register';
 181      if(isset($conf['resendpasswd']) && !$conf['resendpasswd']) $disabled[] = 'resendpwd';
 182      $disabled = array_unique($disabled);
 183    }
 184  
 185    return !in_array($action,$disabled);
 186  }
 187  
 188  
 189  //Setup VIM: ex: et ts=2 enc=utf-8 :


Généré le : Tue Apr 3 20:47:31 2007 par Balluche grâce à PHPXref 0.7