/** * Set config option value * * @param string $name * @param mixed $value * @return mixed */ function setValue($name, $value) { $option = ConfigOptions::findByName($name); if (instance_of($option, 'ConfigOption')) { $option->setValue($value); $save = $option->save(); if ($save && !is_error($save)) { $cached_values = cache_get('config_values'); if (is_array($cached_values)) { $cached_values[$name] = $value; } else { $cached_values = array($name => $value); } // if cache_set('config_values', $cached_values); cache_remove(TABLE_PREFIX . 'config_options_name_' . $name); return $value; } else { return $save; } // if } else { return new InvalidParamError('name', $name, "System configuration option '{$name}' does not exist", true); } // if }
/** * Set value of $name config option for a given project * * @param string $name * @param mixed $value * @param Project $project * @return mixed */ function setValue($name, $value, $project) { $option = ConfigOptions::findByName($name, PROJECT_CONFIG_OPTION); if (instance_of($option, 'ConfigOption')) { $table = TABLE_PREFIX . 'project_config_options'; $count = db_execute_one("SELECT COUNT(*) AS 'row_num' FROM {$table} WHERE project_id = ? AND name = ?", $project->getId(), $name); if (isset($count) && $count['row_num'] > 0) { $result = db_execute("UPDATE {$table} SET value = ? WHERE project_id = ? AND name = ?", serialize($value), $project->getId(), $name); } else { $result = db_execute("INSERT INTO {$table} (project_id, name, value) VALUES (?, ?, ?)", $project->getId(), $name, serialize($value)); } // if return $result && !is_error($result) ? $value : $result; } else { return new InvalidParamError('name', $name, "Project configuration option '{$name}' does not exist", true); } // if }
/** * Set value of $name config option for a given company * * @param string $name * @param mixed $value * @param Company $company * @return mixed */ function setValue($name, $value, $company) { $option = ConfigOptions::findByName($name, COMPANY_CONFIG_OPTION); if (instance_of($option, 'ConfigOption')) { $table = TABLE_PREFIX . 'company_config_options'; $count = db_execute_one("SELECT COUNT(*) AS 'row_num' FROM {$table} WHERE company_id = ? AND name = ?", $company->getId(), $name); if (isset($count) && $count['row_num'] > 0) { $result = db_execute("UPDATE {$table} SET value = ? WHERE company_id = ? AND name = ?", serialize($value), $company->getId(), $name); } else { $result = db_execute("INSERT INTO {$table} (company_id, name, value) VALUES (?, ?, ?)", $company->getId(), $name, serialize($value)); } // if if ($result && !is_error($result)) { $cache_id = 'company_config_options_' . $company->getId(); $cached_values = cache_get($cache_id); if (is_array($cached_values)) { $cached_values[$name] = $value; } else { $cached_values = array($name => $value); } // if cache_set($cache_id, $cached_values); return $value; } else { return $result; } // if } else { return new InvalidParamError('name', $name, "Company configuration option '{$name}' does not exist", true); } // if }
/** * Log user out * * @param void * @return null */ function logout() { $this->setLayout('application'); if (!instance_of($this->logged_user, 'User')) { $this->redirectTo('login'); } // if // Logout and redirect to login screen... $this->authentication->provider->logUserOut(); $option = ConfigOptions::findByName('on_logout_url'); $on_logout_url = $option->getValue(); $this->redirectToUrl(is_valid_url($on_logout_url) ? $on_logout_url : assemble_url('login')); }