objectid . "'>";
echo $obj->objectname;
echo "";
}
}
class param_page extends page
{
function Body()
{
if (!empty($_GET['oid']))
{
$ObjId = $_GET['oid'];
$res = pg_exec($this->database, "SELECT objectname FROM object WHERE objectid=CAST('" . $ObjId ."' AS BIGINT)");
$obj = pg_fetch_object($res, 0);
echo "
";
if( isset($_POST['action']) ) {
echo "Action = " . $_POST['action'] . "
";
}
// See if we have an update for the database
if (isset($_POST['action']) && $_POST['action'] == 'Create Parameter')
{
$name = $_POST['paramname'];
$class = $_POST['paramclass'];
$description = $_POST['paramdescr'];
echo "
Creating parameter $name of class $class.
";
echo "";
}
if (isset($_POST['action']) && $_POST['action'] == 'Save New Parameter')
{
$name = $_POST['paramname'];
$class = $_POST['paramclass'];
$description = $_POST['paramdescr'];
echo "Saving new parameter $name of class $class.
";
echo "Description : $description";
echo "
";
$insertion = "insert into parameter (objectid, name, class, description) values ";
$insertion .= "('$ObjId', '$name', '$class', '$description')";
pg_exec($this->database, $insertion);
$par = pg_fetch_object(pg_exec($this->database, "select currval('paramid_seq')"), 0);
echo "";
echo "Property | Description | Value |
";
$class_res = pg_exec($this->database, "SELECT * FROM parameter_class WHERE name='$class'");
for ($row = 0; $row < pg_numrows($class_res); $row++)
{
$prop = pg_fetch_object($class_res, $row);
$insertion = "insert into property (paramid, name, value, type, min, max) values ('";
$insertion .= $par->currval . "', '" . $prop->property_name . "', '";
$insertion .= $_POST[$prop->property_name] . "', '" . $prop->property_type . "', '";
$insertion .= $prop->min . "', '" . $prop->max . "')";
pg_exec($this->database, $insertion);
$insertion = "insert into history (paramid, modified, change_nature, changed_property, new_value)";
$insertion .= " values ('" . $par->currval . "', '";
$insertion .= date('Y-m-d H:i:s') . "', 'CREATED', '";
$insertion .= $prop->property_name . "', '" . $_POST[$prop->property_name] . "')";
pg_exec($this->database, $insertion);
echo "";
echo "", $prop->property_name, " | ", $prop->description, " | ";
echo "" . $_POST[$prop->property_name] . " | ";
echo "
";
}
echo "
";
}
?>
";
echo "";
$row = 0;
$start_time = getmicrotime();
$res = pg_exec($this->database, "SELECT paramid, class, name, description FROM parameter "
."WHERE objectid= CAST('" . $ObjId . "' AS BIGINT) order by class, name");
while ($row < pg_numrows($res))
{
$par = pg_fetch_object($res, $row);
$qry ="select change_nature from history where paramid= CAST('";
$qry .= $par->paramid . "' AS BIGINT) order by modified desc";
$rhist = pg_exec($this->database, $qry);
$hist = pg_fetch_object($rhist, 0);
if ($hist->change_nature != "REMOVED")
{
?>
class?>
|
paramid . "\">" . $par->name . ""?>
|
description?>
|
database, "SELECT name, value FROM property
WHERE paramid=CAST('" . $par->paramid . "' AS BIGINT)");
for ($p = 0; $p < pg_numrows($r); $p++)
{
$prop = pg_fetch_object($r, $p);
echo $prop->name . "=" . $prop->value . " ";
}
?>
|
";
$duration = getmicrotime() - $start_time;
echo "$row parameters in " . round($duration, 3) . " seconds (";
echo round($duration / $row * 1000, 3) . " milliseconds per parameter).
";
?>
Create new parameter:
database, "SELECT * FROM parameter WHERE paramid='$paramid'"), 0);
if (isset($_POST['action']) && $_POST['action'] == 'Update Parameter')
{
// Update each property if its value has changed
$class_res = pg_exec($this->database, "SELECT * FROM parameter_class WHERE name='" . $par->class . "'");
for ($row = 0; $row < pg_numrows($class_res); $row++)
{
$prop = pg_fetch_object($class_res, $row);
$pname = $prop->property_name;
$property = pg_fetch_object(pg_exec($this->database,
"SELECT value, type, min, max FROM property WHERE paramid='$paramid' AND name='$pname'"), 0);
$pvalue = $property->value;
if ($pvalue != $_POST[$pname])
{
$pvalue = $_POST[$pname];
pg_exec($this->database, "UPDATE property SET value='$pvalue' WHERE paramid='$paramid' AND name='$pname'");
$insertion = "insert into history (paramid, modified, change_nature, changed_property, new_value)";
$insertion .= " values ('" . $paramid . "', '";
$insertion .= date('Y-m-d H:i:s') . "', 'MODIFIED', '";
$insertion .= $pname . "', '" . $pvalue . "')";
pg_exec($this->database, $insertion);
}
if ($property->type == 'DYNAMIC')
{
// Update the range if necessary.
if ($_POST[$pname . "_min"] != $property->min)
{
pg_exec($this->database, "UPDATE property SET min='" . $_POST[$pname . "_min"]
. "' WHERE paramid='$paramid' AND name='$pname'");
}
if ($_POST[$pname . "_max"] != $property->max)
{
pg_exec($this->database, "UPDATE property SET max='" . $_POST[$pname . "_max"]
. "' WHERE paramid='$paramid' AND name='$pname'");
}
}
}
}
echo "Parameter " . $par->name . " of class " . $par->class . "
\n";
echo "\n";
echo "Change history for " . $par->class . " parameter " . $par->name . "
";
$histres = pg_exec($this->database, "SELECT * FROM history WHERE paramid='$paramid' ORDER BY modified");
echo "";
for ($row = 0; $row < pg_numrows($histres); $row++)
{
$hist = pg_fetch_object($histres, $row);
echo "";
echo "" . $hist->changed_property . " | ";
echo "" . $hist->modified . " | ";
echo "" . $hist->change_nature . " | ";
echo "" . $hist->new_value . " | ";
echo "
\n";
}
echo "
";
}
}
}
$page = new param_page("Gnucomo Parameters");
$page->Showpage();
?>