19 include_once (
'Class.Log.php');
20 include_once (
'Class.DbObj.php');
21 include_once (
'Class.ParamDef.php');
23 define(
"PARAM_APP",
"A");
24 define(
"PARAM_GLB",
"G");
25 define(
"PARAM_USER",
"U");
26 define(
"PARAM_STYLE",
"S");
47 name varchar(50) not null,
51 create index paramv_idx2 on paramv(name);
52 create unique index paramv_idx3 on paramv(name,type,appid);
59 if (strpos($this->name,
" ") != 0) {
60 return _(
"Parameter name does not include spaces");
65 $opd =
new Paramdef();
73 function SetKey($appid, $userid, $styleid =
"0")
75 $this->appid = $appid;
76 $this->buffer = array_merge($this->buffer, $this->
GetAll($appid, $userid, $styleid));
83 $action->parent->session->unregister(
"sessparam" . $appid);
88 $pdef =
new paramdef($this->dbaccess,
$name);
90 if ($pdef->isAffected()) {
91 if ($pdef->isglob ==
'Y') {
92 $appid = $pdef->appid;
94 $action->parent->session->close();
95 $action->parent->session->set();
100 $this->appid = $appid;
102 $paramt =
new Param($this->dbaccess, array(
107 if ($paramt->isAffected()) $this->
Modify();
110 $this->buffer[
$name] = $val;
115 $this->buffer[
$name] = $val;
120 if (isset($this->buffer[
$name])) {
121 return ($this->buffer[$name]);
127 function GetAll($appid =
"", $userid, $styleid =
"0")
129 if ($appid ==
"") $appid = $this->appid;
130 $psize =
new Param($this->dbaccess, array(
135 if ($psize->val !=
'')
$size = $psize->val;
136 else $size =
'normal';
140 $list =
$query->Query(0, 0,
"TABLE",
"select distinct on(paramv.name) paramv.* from paramv left join paramdef on (paramv.name=paramdef.name) where " .
"(paramv.type = '" .
PARAM_GLB .
"') " .
" OR (paramv.type='" .
PARAM_APP .
"' and paramv.appid=$appid)" .
" OR (paramv.type='" .
PARAM_USER . $userid .
"' and paramv.appid=$appid)" .
" OR (paramv.type='" .
PARAM_USER . $userid .
"' and paramdef.isglob='Y')" .
" OR (paramv.type='" .
PARAM_STYLE . $styleid .
"' and paramv.appid=$appid)" .
" OR (paramv.type='" .
PARAM_STYLE . $styleid .
"' and paramdef.isglob='Y')" .
" OR (paramv.type='" .
PARAM_STYLE .
$size .
"')" .
" order by paramv.name, paramv.type desc");
142 $list =
$query->Query(0, 0,
"TABLE",
"SELECT * from paramv where type='G' or (type='A' and appid=$appid);");
146 while (list($k, $v) = each(
$list)) {
147 $out[$v[
"name"]] = $v[
"val"];
150 $this->log->debug(
"$appid no constant define for this application");
159 $tlist =
$query->Query(0, 0,
"TABLE",
"select distinct on(paramv.name, paramv.appid) paramv.*, paramdef.descr, paramdef.kind from paramv, paramdef where paramv.name = paramdef.name and paramdef.isuser='Y' and (" .
" (type = '" .
PARAM_GLB .
"') " .
" OR (type='" .
PARAM_APP .
"')" .
" OR (type='" .
PARAM_STYLE . $styleid .
"' )" .
" OR (type='" .
PARAM_USER . $userid .
"' ))" .
" order by paramv.name, paramv.appid, paramv.type desc");
174 $tlist =
$query->Query(0, 0,
"TABLE");
176 $tlist =
$query->Query(0, 0,
"TABLE",
"select distinct on(paramv.name, paramv.appid) paramv.*, paramdef.descr, paramdef.kind from paramv, paramdef where paramv.name = paramdef.name and paramdef.isstyle='Y' and (" .
" (type = '" .
PARAM_GLB .
"') " .
" OR (type='" .
PARAM_APP .
"')" .
" OR (type='" .
PARAM_STYLE . $styleid .
"' ))" .
" order by paramv.name, paramv.appid, paramv.type desc");
185 $tlist =
$query->Query(0, 0,
"TABLE",
"select paramv.*, paramdef.descr, paramdef.kind from paramv, paramdef where paramv.name = paramdef.name and (" .
" (type = '" .
PARAM_GLB .
"') " .
" OR (type='" .
PARAM_APP .
"'))" .
" order by paramv.appid, paramv.name, type desc");
192 if ($appid ==
"") $appid = $this->appid;
193 $req =
"select val from paramv where name='" . $p .
"' and type='U" .
$u .
"' and appid=" . $appid .
";";
195 $tlist =
$query->Query(0, 0,
"TABLE", $req);
196 if (
$query->nb != 0)
return $tlist[0][
"val"];
204 $list =
$query->Query(0, 0,
"LIST",
"select paramv.* from paramv, paramdef where paramdef.name=paramv.name and paramdef.kind='static' and paramdef.isuser!='Y' and paramv.appid=$appid;");
208 while (list($k, $v) = each(
$list)) {
210 if (isset($this->buffer[$v->name])) unset($this->buffer[$v->name]);
217 if (isset($this->buffer[$this->name])) unset($this->buffer[$this->name]);
224 $query->Query(0, 0,
"TABLE",
"delete from paramv where appid not in (select id from application) ");