<?
// Here I call some of my local settings and functions
require_once("local.inc");
require_once("common.inc");
// Include the library
require_once("b-forms/b-forms.inc");
require_once("b-forms/layout.inc");
init_db(TRUE); // This is my local function that opens $blog_link mysql connection.
// Define the form structure
$form = new Form("denied.html");
$bl = new BaseLayout();
$block = & new Block("topic");
$block->add_property(new TextProperty("name", "Name", "", TRUE, 64));
$block -> add_property(new ButtonProperty("save", "Save", TRUE));
$block -> add_property(new ButtonProperty("delete", "Delete"));
$block -> add_property(new ButtonProperty("cancel", "Cancel"));
$form -> add_block($block);
// Define triggers
function form_on_open() {
global $form, $blog_link, $HTTP_GET_VARS;
if (isset($HTTP_GET_VARS["topic"])) {
$query = sprintf("SELECT name FROM topics WHERE id = %d",$HTTP_GET_VARS["topic"]);
$result = mysql_query($query, $blog_link);
$num_rows = mysql_num_rows($result);
if ($num_rows > 0) {
$row = mysql_fetch_row($result);
$form->topic->append(RS_OLD);
$form->topic->id = $HTTP_GET_VARS["topic"];
$form->topic->name = $row[0];
}
}
}
function topic_cancel_on_action($rownum = -1) {
close_db();
header("Location: /examples/");
exit;
}
function topic_save_on_action($rownum = -1) {
global $blog_link, $form;
if ($form->validate()) {
if ($form->topic->get_record_status() == RS_OLD) {
// We are saving an existing record
$query = sprintf(
"UPDATE topics ".
"SET name = '%s' ".
"WHERE id = %d",
mysql_escape_string($form->topic->name),
$form->topic->id);
}
else { // We are saving a new record
$query = sprintf("INSERT INTO topics (name) VALUES ('%s')",
mysql_escape_string($form->topic->name));
}
@mysql_query($query, $blog_link);
// Check if the query executed successfully.
if (mysql_errno()) {
$error = mysql_error();
return;
}
close_db();
header("Location: /examples/");
exit;
}
}
function topic_delete_on_action($rownum = -1) {
global $blog_link, $form;
$query = sprintf("DELETE FROM topics WHERE id=%d", $form->topic->id);
mysql_query($query, $blog_link);
close_db();
header("Location: /examples/");
exit;
}
function form_pre_display() {
global $form;
if (!$form->topic->is_record_existing())
$form->topic->_properties["delete"]->visible = FALSE;
}
// Do the actual form processing
$form->process();
// Generate the HTML code for the form
echo "<html><body><head>\n";
echo "<link rel=\"stylesheet\" media=\"screen, projection\" type=\"text/css\" href=\"layout.css\" />\n";
echo "</head>";
echo "<h1>".($form->topic->is_record_existing()?"Edit":"Create").
" topic</h1>\n";
if (isset($error))
echo "<h2>$error</h2>";
$form->start_form();
$bl->show_block("topic");
$form->end_form();
echo "</body></html>\n";
close_db();
?>
|