<?php
/*
* test1.php
* Module yap testing program 4 (calback function)
* $Header: d:/cvs/classistd/yap/test4.php,v 1.3 2004/04/29 20:56:42 Administrator Exp $
*/
/*
* In this example I allow to modify only the row with id = 6.
* The field id is specified as row key into modify_info array
* The parameter is the value of key field
*/
function Allow($ItemKey)
{
return($ItemKey==6);
}
// allow to remove only the item with id=7
function RemoveId7($ItemKey)
{
return($ItemKey==7);
}
/*
* Check value callback function.
* The following function is an example how to check the fields
* during form processing
* before write them to the databse.
* If the function return false, the module show the form again
* $InputFields is an array containing all fields from the form
* $FieldName: name of the field to check
* You may set the function to check many fileds. The function is
* called many times as the numeber the fields to check.
* In this example I set to call the following function only to
* check the field 'errno', so when the function is called
* $FieldName is = 'errno'.
*/
function CheckField($InputFields,$FieldName)
{
$ret=($InputFields[$FieldName]==0)?true:false;
return($ret);
}
function CheckText($InputFields,$FieldName)
{
return(true);
}
/*
* Function called for each row while the module shows the table. It is usefull
* to add custom link to the table
* $RowData is an array containing all data about the current row
* To return to the current page call this script (test4.php) without any parameter
* The module saves its information into session.
*/
function CustomLink($RowData)
{
echo "<TD><a href='dummypage1.php'>CustomLink1</a></TD>";
echo "<TD><a href='dummypage2.php'>CustomLink2</a></TD>";
}
include_once('CYapBox.php');
include_once('CYap.inc');
session_start('test');
echo '<html><body>';
$SelectQuery='select id, DEvent, errno, text, filename, line from dlog where ';
$SelectCount='select count(*) from dlog where ';
//Parameters setup
//Db Connection
$db_info=array('servername' => 'localhost',
'dbname' => 'log',
'user' => 'root',
'password' => '',
'selectquery' => $SelectQuery,
'selectcount' => $SelectCount,
'orderfield' => 'id',
'orderdirection' => 'A',
'NeedOpenDb' => false
);
// Field to use to perform sesrchs
$Search_field=array(array('description' => 'Event Date',
'fieldname' => 'DEvent',
'type' => 'A',
'size' => 14,
'useregex' => 1 ),
array('description' => 'Error Code',
'fieldname' => 'errno',
'type' => 'N'),
);
// Fields to shows inside the table
$Show_field=array(array('fieldname' => 'id',
'header' => 'Id'),
array('fieldname' => 'DEvent',
'header' => 'Event Date'),
array('fieldname' => 'errno',
'header' => 'Error Code'),
array('fieldname' => 'text',
'header' => 'Description'),
);
// I don't setup the detail mode, the add/modify/delete row functions
$Show_info=array('prefix' => 'tst4',
'showdethref' => true,
'rowcallback' => 'CustomLink',
);
$Modify_info=array(
'table' => 'dlog',
'keyfield' => 'id',
'showdelete' => true,
'showmodify' => true,
'showadd' => true,
// callback function to allow the
// modify function
'modifyallow' => 'Allow',
// callback function to allow the
// delete function
'deleteallow' => 'RemoveId7',
// set the callback function to check the contents
// of errno and text
'fieldvalidator' => array(
'errno' => 'CheckField',
'text' => 'CheckText'
),
);
$p=new CYap($Search_field, $Show_field, $db_info, $Show_info, $Modify_info);
$p->showpage();
echo '</body></html>';
?>
|