autoload(); if(isset($this->all[$name])) { return $this->all[$name]; } $value = Piwik_FetchOne( 'SELECT option_value FROM `' . Piwik::prefixTable('option') . '` WHERE option_name = ?', $name); if($value === false) { return false; } $this->all[$name] = $value; return $value; } /** * Sets the option value in the database * * @param string $name * @param string $value * @param int $autoload if set to 1, this option value will be automatically loaded; should be set to 1 for options that will always be used in the Piwik request. */ public function set($name, $value, $autoload = 0) { $autoload = (int)$autoload; Piwik_Query('INSERT INTO `'. Piwik::prefixTable('option') . '` (option_name, option_value, autoload) '. ' VALUES (?, ?, ?) '. ' ON DUPLICATE KEY UPDATE option_value = ?', array($name, $value, $autoload, $value)); $this->all[$name] = $value; } private function autoload() { static $loaded = false; if($loaded) { return; } $all = Piwik_FetchAll('SELECT option_value, option_name FROM `'. Piwik::prefixTable('option') . '` WHERE autoload = 1'); foreach($all as $option) { $this->all[$option['option_name']] = $option['option_value']; } $loaded = true; } } function Piwik_GetOption($name) { return Piwik_Option::getInstance()->get($name); } function Piwik_SetOption($name, $value, $autoload = 0) { Piwik_Option::getInstance()->set($name, $value, $autoload); }