Ejemplo n.º 1
0
/**
 * update_tarski_option() - Updates the given Tarski option with a new value.
 * 
 * This function can be used either to update a particular option
 * with a new value, or to delete that option altogether by setting
 * $drop to true.
 * @since 1.4
 * @param string $option
 * @param string $value
 * @param boolean $drop
 * @global object $tarski_options
 */
function update_tarski_option($option, $value)
{
    $tarski_options = new Options();
    $tarski_options->tarski_options_get();
    if (empty($value)) {
        unset($tarski_options->{$option});
    } else {
        $tarski_options->{$option} = $value;
    }
    update_option('tarski_options', $tarski_options);
    flush_tarski_options();
}
Ejemplo n.º 2
0
/**
 * function tarski_upgrade() - Upgrades Tarski's options where appropriate.
 * 
 * Tarski preferences sometimes change between versions, and need to
 * be updated. This function does not determine whether an update is
 * needed, it merely perfoms it. It's also self-contained, so it
 * won't update the global $tarski_options object either.
 * @since 2.1
 * @uses tarski_upgrade_special()
 * @uses tarski_upgrade_widgets()
 */
function tarski_upgrade()
{
    // Get existing options
    $options = new Options();
    $options->tarski_options_get();
    // Get our defaults, so we can merge them in
    $defaults = new Options();
    $defaults->tarski_options_defaults();
    // Update the options version so we don't run this code more than once
    $options->installed = theme_version('current');
    // Handle special cases first
    tarski_upgrade_special($options, $defaults);
    // Upgrade old display options to use widgets instead
    tarski_upgrade_widgets($options, $defaults);
    // Conform our options to the expected values, types, and defaults
    foreach ($options as $name => $value) {
        if (!isset($defaults->{$name})) {
            // Get rid of options which no longer exist
            unset($options->{$name});
        } elseif (!isset($options->{$name})) {
            // Use the default if we don't have this option
            $options->{$name} = $defaults->{$name};
        } elseif (is_array($options->{$name}) && !is_array($defaults->{$name})) {
            // If our option is an array and the default is not, implode using " " as a separator
            $options->{$name} = implode(" ", $options->{$name});
        } elseif (!is_array($options->{$name}) && is_array($defaults->{$name})) {
            // If our option is a scalar and the default is an array, wrap our option in an array
            $options->{$name} = array($options->{$name});
        }
    }
    // Save our upgraded options
    update_option('tarski_options', $options);
}