oui voici le code php
class Config_edit extends Fsb_model
{
public $cfg = array();
public $name;
private $args;
private $lang_prefix;
public function __construct(&$cfg, $lang_prefix)
{
$this->cfg = $cfg;
$this->lang_prefix = $lang_prefix;
}
public function set_cat($cat_name, $explain = NULL)
{
Fsb::$tpl->set_blocks('cat', array(
'NAME' => $cat_name,
'EXPLAIN' => $explain,
));
}
public function set_line($name, $method, $args)
{
Fsb::$tpl->set_blocks('cat.line', array());
if (method_exists($this, $method))
{
$arg = "''";
if (!empty($args))
{
eval('$value = ' . $args . ';');
$arg = (!is_array($value)) ? '\'' . str_replace("'", "\'", $value) . '\'' : var_export($value, TRUE);
}
eval("\$this->args = $arg;");
$this->name = $name;
$this->$method();
}
}
private function put_boolean()
{
Fsb::$tpl->set_blocks('cat.line.put_boolean', array(
'L_ACTION' => Fsb::$session->lang($this->lang_prefix . $this->name),
'NAME' => $this->name,
'EXPLAIN' => (Fsb::$session->lang($this->lang_prefix . $this->name . '_explain')) ? Fsb::$session->lang($this->lang_prefix . $this->name . '_explain') : NULL,
'SEPARATOR' => (count((array) $this->args) > 2) ? '<br />' : ' '
));
foreach ((array)$this->args AS $lang => $value)
{
Fsb::$tpl->set_blocks('cat.line.put_boolean.row', array(
'LANG' => ((Fsb::$session->lang($lang)) ? Fsb::$session->lang($lang) : $lang),
'VALUE' => $value,
'CHECKED' => ($this->cfg[$this->name] == $value) ? TRUE : FALSE,
));
}
}
private function put_html_code()
{
Fsb::$tpl->set_blocks('cat.line.put_html_code', array(
'L_ACTION' => Fsb::$session->lang($this->lang_prefix . $this->name),
'CODE' => $this->args,
'EXPLAIN' => (Fsb::$session->lang($this->lang_prefix . $this->name . '_explain')) ? Fsb::$session->lang($this->lang_prefix . $this->name . '_explain') : NULL,
));
}
private function put_text()
{
Fsb::$tpl->set_blocks('cat.line.put_text', array(
'L_ACTION' => Fsb::$session->lang($this->lang_prefix . $this->name),
'EXPLAIN' => (Fsb::$session->lang($this->lang_prefix . $this->name . '_explain')) ? Fsb::$session->lang($this->lang_prefix . $this->name . '_explain') : NULL,
'NAME' => $this->name,
'VALUE' => htmlspecialchars($this->cfg[$this->name]),
'TYPE' => ($this->args && isset($this->args['password'])) ? 'password' : 'text',
));
foreach ((array)$this->args AS $name => $value)
{
if ($name != 'password')
{
Fsb::$tpl->set_blocks('cat.line.put_text.option', array(
'OPT_NAME' => $name,
'OPT_VALUE' => $value,
));
}
}
}
private function put_textarea()
{
Fsb::$tpl->set_blocks('cat.line.put_textarea', array(
'L_ACTION' => Fsb::$session->lang($this->lang_prefix . $this->name),
'EXPLAIN' => (Fsb::$session->lang($this->lang_prefix . $this->name . '_explain')) ? Fsb::$session->lang($this->lang_prefix . $this->name . '_explain') : NULL,
'NAME' => $this->name,
'VALUE' => htmlspecialchars($this->cfg[$this->name]),
));
foreach ((array)$this->args AS $name => $value)
{
Fsb::$tpl->set_blocks('cat.line.put_textarea.option', array(
'OPT_NAME' => $name,
'OPT_VALUE' => $value,
));
}
}
}