示例#1
0
文件: model.php 项目: kolobus/ZeroBin
 /**
  * Gets, and creates if neccessary, a store object
  */
 private function _getStore()
 {
     if ($this->_store === null) {
         $this->_store = forward_static_call(array($this->_conf->getKey('class', 'model'), 'getInstance'), $this->_conf->getSection('model_options'));
     }
     return $this->_store;
 }
示例#2
0
 /**
  * set configuration options of the traffic limiter
  *
  * @access public
  * @static
  * @param configuration $conf
  * @return void
  */
 public static function setConfiguration(configuration $conf)
 {
     self::setLimit($conf->getKey('limit', 'traffic'));
     self::setPath($conf->getKey('dir', 'traffic'));
     if (($option = $conf->getKey('header', 'traffic')) !== null) {
         $httpHeader = 'HTTP_' . $option;
         if (array_key_exists($httpHeader, $_SERVER) && !empty($_SERVER[$httpHeader])) {
             self::$_ipKey = $httpHeader;
         }
     }
 }
示例#3
0
 /**
  * Display ZeroBin frontend.
  *
  * @access private
  * @return void
  */
 private function _view()
 {
     // set headers to disable caching
     $time = gmdate('D, d M Y H:i:s \\G\\M\\T');
     header('Cache-Control: no-store, no-cache, must-revalidate');
     header('Pragma: no-cache');
     header('Expires: ' . $time);
     header('Last-Modified: ' . $time);
     header('Vary: Accept');
     // label all the expiration options
     $expire = array();
     foreach ($this->_conf->getSection('expire_options') as $time => $seconds) {
         $expire[$time] = $seconds == 0 ? i18n::_(ucfirst($time)) : filter::time_humanreadable($time);
     }
     // translate all the formatter options
     $formatters = array_map(array('i18n', 'translate'), $this->_conf->getSection('formatter_options'));
     // set language cookie if that functionality was enabled
     $languageselection = '';
     if ($this->_conf->getKey('languageselection')) {
         $languageselection = i18n::getLanguage();
         setcookie('lang', $languageselection);
     }
     $page = new RainTPL();
     $page::$path_replace = false;
     // we escape it here because ENT_NOQUOTES can't be used in RainTPL templates
     $page->assign('CIPHERDATA', htmlspecialchars($this->_data, ENT_NOQUOTES));
     $page->assign('ERROR', i18n::_($this->_error));
     $page->assign('STATUS', i18n::_($this->_status));
     $page->assign('VERSION', self::VERSION);
     $page->assign('DISCUSSION', $this->_conf->getKey('discussion'));
     $page->assign('OPENDISCUSSION', $this->_conf->getKey('opendiscussion'));
     $page->assign('MARKDOWN', array_key_exists('markdown', $formatters));
     $page->assign('SYNTAXHIGHLIGHTING', array_key_exists('syntaxhighlighting', $formatters));
     $page->assign('SYNTAXHIGHLIGHTINGTHEME', $this->_conf->getKey('syntaxhighlightingtheme'));
     $page->assign('FORMATTER', $formatters);
     $page->assign('FORMATTERDEFAULT', $this->_conf->getKey('defaultformatter'));
     $page->assign('NOTICE', i18n::_($this->_conf->getKey('notice')));
     $page->assign('BURNAFTERREADINGSELECTED', $this->_conf->getKey('burnafterreadingselected'));
     $page->assign('PASSWORD', $this->_conf->getKey('password'));
     $page->assign('FILEUPLOAD', $this->_conf->getKey('fileupload'));
     $page->assign('BASE64JSVERSION', $this->_conf->getKey('base64version'));
     $page->assign('LANGUAGESELECTION', $languageselection);
     $page->assign('LANGUAGES', i18n::getLanguageLabels(i18n::getAvailableLanguages()));
     $page->assign('EXPIRE', $expire);
     $page->assign('EXPIREDEFAULT', $this->_conf->getKey('default', 'expire'));
     $page->assign('EXPIRECLONE', !$this->_doesExpire || $this->_doesExpire && $this->_conf->getKey('clone', 'expire'));
     $page->assign('URLSHORTENER', $this->_conf->getKey('urlshortener'));
     $page->draw($this->_conf->getKey('template'));
 }
示例#4
0
 public function testHandleGetKey()
 {
     file_put_contents(CONF, '[main]' . PHP_EOL . '[model]');
     $conf = new configuration();
     $this->assertEquals($this->_options['main']['sizelimit'], $conf->getKey('sizelimit'), 'get default size');
 }