| Current Path : /home/balossw/www/temp/common/cms/includes/classes/ |
| Current File : /home/balossw/www/temp/common/cms/includes/classes/dbconfig.class.php |
<?php
/*---------------------------------------------------------------------------
File name ............ includes/classes/dbconfig.class.php
Project .............. Owebia CMS
Author ............... Antoine Lemoine
Creation date ........ 22.08.2008
Modification date .... 04.10.2010
---------------------------------------------------------------------------*/
include_once $global->realpath('common/cms/includes/classes/abstract-module.class.php');
if (!class_exists('DBConfig')) {
class DBConfig extends AbstractModule
{
var $table;
var $name_field_name;
var $value_field_name;
function DBConfig($default_title, $table) {
$this->AbstractModule($default_title);
$this->table = $table;
$this->name_field_name = 'config_name';
$this->value_field_name = 'config_value';
}
function run() {
AbstractModule::run();
$this->main();
}
function main() {
$this->title = $this->default_title.' :: Modification';
$invalid_field = array();
if (count($_POST)>0 && $this->validData($this->table,$invalid_field,$error)) {
$this->save();
}
$this->addForm($this->table,$this->getConfigObject(),$invalid_field,'');
}
function getConfigObject() {
global $global;
$query_string = "SELECT * FROM `%s` WHERE";
$query_params = array(
(string)$global->config['db']['table_prefix'].$this->table->name
);
foreach ($this->table->fields as $field) {
$query_string .= " %s='%s' OR";
$query_params[] = (string)$this->name_field_name;
$query_params[] = (string)$field->field_name;
}
$query = buildSafeQuery(substr($query_string,0,-3),$query_params);
$result = $query->getResult();
$object = array();
for ($i=0; $i<$result->numrows; $i++) {
$fields = $result->getRow($i);
$object[$fields[$this->name_field_name]] = $fields[$this->value_field_name];
}
return $object;
}
function save() {
global $global;
$query_string = "REPLACE INTO `%s` (%s,%s) VALUES ";
$query_params = array(
(string)$global->config['db']['table_prefix'].$this->table->name,
(string)$this->name_field_name,
(string)$this->value_field_name
);
foreach ($this->table->fields as $field) {
if (isset($_POST[$field->field_name])) {
$query_string .= "('%s','%s'),";
$query_params[] = (string)$field->field_name;
$query_params[] = (string)$_POST[$field->field_name];
}
}
$query = buildSafeQuery(substr($query_string,0,-1),$query_params);
$result = $query->getResult();
$this->operationResult($result->success,$this->return_uri);
}
}
}