<html >
<head>
<meta name="keywords" content="php, datagrid" />
<meta name="description" content="php datagrid" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>PHP DG version 4.2.1</title>
</head>
<body>
<h3>Sample 3. Advanced PHP DG code</h3> <a href="sample3_demo.php">View Live Demo on this sample</a>
<h4>1. All modes (Add/Edit/Details/Delete/View).</h4>
<h4>2. All features.</h4>
<h4>3. Two DataGrid on one page.</h4>
<h4>4. <b>Customized layout in details mode</b>.</h4>
<pre>
<font color="#112233">
## +---------------------------------------------------------------------------+
## | 1. Creating & Calling: |
## +---------------------------------------------------------------------------+
## *** define a relative (virtual) path to datagrid.class.php file and "pear"
## *** directory (relatively to the current file)
## *** RELATIVE PATH ONLY ***
define ("DATAGRID_DIR", "datagrid421/");
define ("PEAR_DIR", "datagrid421/pear/");
require_once(DATAGRID_DIR.'datagrid.class.php');
require_once(PEAR_DIR.'PEAR.php');
require_once(PEAR_DIR.'DB.php');
##
## *** creating variables that we need for database connection
$DB_USER='root';
$DB_PASS='12345';
$DB_HOST='localhost';
$DB_NAME='localhost_db';
ob_start();
## *** (example of ODBC connection string)
## *** $result_conn = $db_conn->connect(DB::parseDSN('odbc://root:hide@address.com'));
## *** (example of Oracle connection string)
## *** $result_conn = $db_conn->connect(DB::parseDSN('oci8://root:hide@address.com:1521/mydatabase));
## *** (example of PostgreSQL connection string)
## *** $result_conn = $db_conn->connect(DB::parseDSN('pgsql://root:hide@address.com/mydatabase));
## === (Examples of connections to other db types see in "docs/pear/" folder)
$db_conn = DB::factory('mysql'); /* don't forget to change on appropriate db type */
$result_conn = $db_conn->connect(DB::parseDSN('mysql://'.$DB_USER.':'.$DB_PASS.'@'.$DB_HOST.'/'.$DB_NAME));
if(DB::isError($result_conn)){ die($result_conn->getDebugInfo()); }
## *** put a primary key on the first place
$sql=" SELECT "
."countries.id, "
."countries.region_id, "
."regions.name as region_name, "
."countries.name as country_name, "
."countries.description, "
."countries.picture_url, "
."countries.independent_date, "
."countries.independent_time, "
."FORMAT(countries.population, 0) as population, "
."(SELECT COUNT(presidents.id) FROM presidents WHERE presidents.country_id = countries.id) as presidents, "
." CASE WHEN countries.is_democracy = 1 THEN 'Yes' ELSE 'No' END as is_democracy "
."FROM countries INNER JOIN regions ON countries.region_id=regions.id ";
## *** set needed options and create a new class instance
$debug_mode = false; /* display SQL statements while processing */
$messaging = true; /* display system messages on a screen */
$unique_prefix = "f_"; /* prevent overlays - must be started with a letter */
$dgrid = new DataGrid($debug_mode, $messaging, $unique_prefix, DATAGRID_DIR);
## *** set data source with needed options
$default_order_field = "id";
$default_order_type = "DESC";
$dgrid->dataSource($db_conn, $sql, $default_order_field, $default_order_type);
##
##
## +---------------------------------------------------------------------------+
## | 2. General Settings: |
## +---------------------------------------------------------------------------+
## *** set encoding and collation (default: utf8/utf8_unicode_ci)
$dg_encoding = "utf8";
$dg_collation = "utf8_unicode_ci";
$dgrid->setEncoding($dg_encoding, $dg_collation);
## *** set interface language (default - English)
## *** (en) - English (de) - German (se) Swedish (hr) - Bosnian/Croatian
## *** (hu) - Hungarian (es) - Espanol (ca) - Catala (fr) - Francais
## *** (nl) - Netherlands/"Vlaams"(Flemish) (it) - Italiano (pl) - Polish
## *** (ch) - Chinese (sr) - Serbian
$dg_language = "en";
$dgrid->setInterfaceLang($dg_language);
## *** set direction: "ltr" or "rtr" (default - "ltr")
$direction = "ltr";
$dgrid->setDirection($direction);
## *** set layouts: 0 - tabular(horizontal) - default, 1 - columnar(vertical)
$layouts = array("view"=>"0", "edit"=>"1", "details"=>"2", "filter"=>"1");
$dgrid->setLayouts($layouts);
$details_template = "
<table dir='ltr' class='class_table' align='center' width='60%'>
<tr class='class_tr' bgcolor='#fcfaf6'>
<td width='50%' class='class_td' align='center'>{picture_url}</td>
<td width='50%'>
<table border=0>
<tr class='class_tr' bgcolor='#fcfaf6'><td class='class_td class_left' nowrap><b>Region:</b> </td><td class='class_td class_left' >{region_id}</td></tr>
<tr class='class_tr' bgcolor='#fcfaf6'><td class='class_td class_left' nowrap><b>Country:</b> </td><td class='class_td class_left' >{name}</td></tr>
<tr class='class_tr' bgcolor='#fcfaf6'><td class='class_td class_left' nowrap><b>Independent date:</b> </td><td class='class_td class_left' >{independent_date}</td></tr>
<tr class='class_tr' bgcolor='#fcfaf6'><td class='class_td class_left' nowrap><b>Democracy?</b> </td><td class='class_td class_left' >{is_democracy}</td></tr>
<tr class='class_tr' bgcolor='#fcfaf6'><td class='class_td class_left' nowrap><b>Population:</b> </td><td class='class_td class_left' >{population}</td></tr>
<tr class='class_tr' bgcolor='#fcfaf6'><td class='class_td class_left' nowrap><b>Description:</b> </td><td class='class_td class_left' >{description}</td></tr>
</table>
</td>
</tr>
</table>
<br>
<table dir='ltr' class='class_table' align='center' width='60%'>
<tr class='class_tr' bgcolor='#ffffff' id='f_row_1' >
<th class='class_th class_left' bgColor='#e2e0cb' onmouseover=\"bgColor='#ebeadb';\" onmouseout=\"bgColor='#e2e0cb';\" wrap style='BORDER-RIGHT: #d2d0bb 0px solid;'><div style='float:right;'><a class='f_class_a' href='?skin=&f_mode=cancel&f_rid=236&f__ff_countries_name_operator=like&f__ff_regions_name_operator==&f__ff_countries_independent_date_operator==&f__ff_countries_population_operator==&f__ff_selSearchType=0&f__ff_selSearchType=0&f__ff_onSUBMIT_FILTER=search&f_sort_field=1&f_sort_type=DESC&f_page_size=10&f_p=1&f__ff_countries_name_operator=like&f__ff_regions_name_operator==&f__ff_countries_independent_date_operator==&f__ff_countries_population_operator==&f__ff_selSearchType=0&f__ff_selSearchType=0&f__ff_onSUBMIT_FILTER=search&f_sort_field=1&f_sort_type=DESC&f_page_size=10&f_p=1' onClick=\"javascript:document.location.href='http://phpbuilder.awardspace.com/datagrid420/sample3_demo.php?skin=&f_mode=cancel&f_rid=236&f__ff_countries_name_operator=like&f__ff_regions_name_operator==&f__ff_countries_independent_date_operator==&f__ff_countries_population_operator==&f__ff_selSearchType=0&f__ff_selSearchType=0&f__ff_onSUBMIT_FILTER=search&f_sort_field=1&f_sort_type=DESC&f_page_size=10&f_p=1&f__ff_countries_name_operator=like&f__ff_regions_name_operator==&f__ff_countries_independent_date_operator==&f__ff_countries_population_operator==&f__ff_selSearchType=0&f__ff_selSearchType=0&f__ff_onSUBMIT_FILTER=search&f_sort_field=1&f_sort_type=DESC&f_page_size=10&f_p=1'\" title='Back'>Back</a></div></th>
</tr>
</table>
<br><br><br>
";
$dgrid->setTemplates("","",$details_template);
## *** set modes for operations ("type" => "link|button|image")
## *** "byFieldValue"=>"fieldName" - make the field to be a link to edit mode page
$modes = array(
"add" =>array("view"=>true, "edit"=>false, "type"=>"link"),
"edit" =>array("view"=>true, "edit"=>true, "type"=>"link", "byFieldValue"=>""),
"cancel" =>array("view"=>true, "edit"=>true, "type"=>"link"),
"details" =>array("view"=>true, "edit"=>false, "type"=>"link"),
"delete" =>array("view"=>true, "edit"=>true, "type"=>"image")
);
$dgrid->setModes($modes);
## *** allow scrolling on datagrid
/// $scrolling_option = false;
/// $dgrid->allowScrollingSettings($scrolling_option);
## *** set scrolling settings (optional)
/// $scrolling_width = "90%";
/// $scrolling_height = "100%";
/// $dgrid->setScrollingSettings($scrolling_width, $scrolling_height);
## *** allow mulirow operations
$multirow_option = true;
$dgrid->allowMultirowOperations($multirow_option);
$multirow_operations = array(
"delete" => array("view"=>true),
"details" => array("view"=>true)
);
$dgrid->setMultirowOperations($multirow_operations);
## *** set CSS class for datagrid
## *** "default" or "blue" or "gray" or "green" or your css file relative path with name
$css_class = isset($_REQUEST['skin']) ? $_REQUEST['skin'] : "default";
if($css_class == "") $css_class = "default";
## "embedded" - use embedded classes, "file" - link external css file
$css_type = "embedded";
$dgrid->setCssClass($css_class, $css_type);
## *** set variables that used to get access to the page (like: my_page.php?act=34&id=56 etc.)
$http_get_vars = array("skin");
$dgrid->setHttpGetVars($http_get_vars);
## *** set other datagrid/s unique prefixes (if you use few datagrids on one page)
## *** format (in wich mode to allow processing of another datagrids)
## *** array("unique_prefix"=>array("view"=>true|false, "edit"=>true|false, "details"=>true|false));
$anotherDatagrids = array("fp_"=>array("view"=>false, "edit"=>true, "details"=>false));
$dgrid->setAnotherDatagrids($anotherDatagrids);
## *** set DataGrid caption
$dg_caption = '
<table class="class_paging_table" width="50%">
<tr valign="center">
<td align="right"><b>My Favorite Lovely PHP DataGrid</b> </td>
<td align="left"><a href="http://jigsaw.w3.org/css-validator/validator?uri=http://phpbuilder.awardspace.com/sample2_demo.php">
<img style="border:0;width:88px;height:31px" src="http://jigsaw.w3.org/css-validator/images/vcss" alt="Valid CSS!" /></a>
</td>
</tr>
</table>';
$dgrid->setCaption($dg_caption);
##
## +---------------------------------------------------------------------------+
## | 3. Printing & Exporting Settings: |
## +---------------------------------------------------------------------------+
## *** set printing option: true(default) or false
$printing_option = true;
$dgrid->allowPrinting($printing_option);
## *** set exporting option: true(default) or false
$exporting_option = true;
$dgrid->allowExporting($exporting_option);
##
##
## +---------------------------------------------------------------------------+
## | 4. Sorting & Paging Settings: |
## +---------------------------------------------------------------------------+
## *** set sorting option: true(default) or false
$sorting_option = true;
$dgrid->allowSorting($sorting_option);
## *** set paging option: true(default) or false
$paging_option = true;
$rows_numeration = false;
$numeration_sign = "N #";
$dgrid->allowPaging($paging_option, $rows_numeration, $numeration_sign);
## *** set paging settings
$bottom_paging = array("results"=>true, "results_align"=>"left", "pages"=>true, "pages_align"=>"center", "page_size"=>true, "page_size_align"=>"right");
$top_paging = array();
$pages_array = array("10"=>"10", "25"=>"25", "50"=>"50", "100"=>"100", "250"=>"250", "500"=>"500", "1000"=>"1000");
$default_page_size = 10;
$dgrid->setPagingSettings($bottom_paging, $top_paging, $pages_array, $default_page_size);
##
##
## +---------------------------------------------------------------------------+
## | 5. Filter Settings: |
## +---------------------------------------------------------------------------+
## *** set filtering option: true or false(default)
$filtering_option = true;
$dgrid->allowFiltering($filtering_option);
## *** set aditional filtering settings
$fill_from_array = array("10000"=>"10000", "250000"=>"250000", "5000000"=>"5000000", "25000000"=>"25000000", "100000000"=>"100000000");
$filtering_fields = array(
"Country" =>array("table"=>"countries", "field"=>"name", "source"=>"self", "operator"=>true, "default_operator"=>"like", "type"=>"textbox", "case_sensitive"=>true, "comparison_type"=>"string"),
"Region" =>array("table"=>"regions", "field"=>"name", "source"=>"self", "order"=>"DESC", "operator"=>true, "type"=>"dropdownlist", "case_sensitive"=>false, "comparison_type"=>"binary"),
"Date" =>array("table"=>"countries", "field"=>"independent_date", "source"=>"self", "operator"=>true, "type"=>"textbox", "case_sensitive"=>false, "comparison_type"=>"string"),
"Population" =>array("table"=>"countries", "field"=>"population", "source"=>$fill_from_array, "order"=>"DESC", "operator"=>true, "type"=>"dropdownlist", "case_sensitive"=>false, "comparison_type"=>"numeric")
);
$dgrid->setFieldsFiltering($filtering_fields);
##
##
## +---------------------------------------------------------------------------+
## | 6. View Mode Settings: |
## +---------------------------------------------------------------------------+
## *** set view mode table properties
/// $vm_table_properties = array("width"=>"90%");
/// $dgrid->setViewModeTableProperties($vm_table_properties);
## *** set columns in view mode
## *** Ex.: "on_js_event"=>"onclick='alert(\"Yes!!!\");'"
## *** "barchart" : number format in SELECT SQL must be equal with number format in max_value
$vm_colimns = array(
"region_name" =>array("header"=>"Region Name", "type"=>"label", "width"=>"130px", "align"=>"left", "wrap"=>"nowrap", "text_length"=>"-1", "case"=>"normal"),
"country_name" =>array("header"=>"Country Name", "type"=>"linktoedit", "align"=>"left", "width"=>"130px", "wrap"=>"nowrap", "text_length"=>"-1", "case"=>"normal", "summarize"=>false, "on_js_event"=>""),
"population" =>array("header"=>"Population", "type"=>"label", "summarize"=>true, "align"=>"right", "wrap"=>"nowrap", "text_length"=>"-1", "case"=>"normal"),
"presidents" =>array("header"=>"Presidents", "type"=>"label", "summarize"=>true, "align"=>"right", "wrap"=>"nowrap", "text_length"=>"-1", "case"=>"normal"),
"description" =>array("header"=>"Short Description","type"=>"label", "align"=>"left", "wrap"=>"wrap", "text_length"=>"15", "case"=>"lower"),
"picture_url" =>array("header"=>"Picture", "type"=>"image", "align"=>"center", "width"=>"", "wrap"=>"nowrap", "text_length"=>"-1", "case"=>"normal", "summarize"=>false, "on_js_event"=>"", "target_path"=>"uploads/", "default"=>"", "image_width"=>"17px", "image_height"=>"17px"),
);
$dgrid->setColumnsInViewMode($vm_colimns);
##
##
## +---------------------------------------------------------------------------+
## | 7. Add/Edit/Details Mode Settings: |
## +---------------------------------------------------------------------------+
## *** set add/edit mode table properties
/// $em_table_properties = array("width"=>"70%");
/// $dgrid->setEditModeTableProperties($em_table_properties);
## *** set details mode table properties
/// $dm_table_properties = array("width"=>"70%");
/// $dgrid->setDetailsModeTableProperties($dm_table_properties);
## *** set settings for add/edit/details modes
$table_name = "countries";
$primary_key = "id";
$condition = "";
$dgrid->setTableEdit($table_name, $primary_key, $condition);
## *** set columns in edit mode
## *** first letter: r - required, s - simple (not required)
## *** second letter: t - text(including datetime), n - numeric, a - alphanumeric, e - email, f - float, y - any, l - login name, z - zipcode, p - password, i - integer, v - verified
## *** third letter (optional):
## for numbers: s - signed, u - unsigned, p - positive, n - negative
## for strings: u - upper, l - lower, n - normal, y - any
## *** Ex.: "on_js_event"=>"onclick='alert(\"Yes!!!\");'"
## *** Ex.: type = textbox|textarea|label|date(yyyy-mm-dd)|datedmy(dd-mm-yyyy)|datetime(yyyy-mm-dd hh:mm:ss)|datetimedmy(dd-mm-yyyy hh:mm:ss)|image|password|enum|print|checkbox
## *** make sure your WYSIWYG dir has 755 permissions
$fill_from_array = array("10000"=>"10000", "250000"=>"250000", "5000000"=>"5000000", "25000000"=>"25000000", "100000000"=>"100000000");
$em_columns = array(
"region_id" =>array("header"=>"Region", "type"=>"textbox", "width"=>"210px", "req_type"=>"rt", "title"=>"Region Name"),
"name" =>array("header"=>"Country", "type"=>"textbox", "width"=>"210px", "req_type"=>"ry", "title"=>"Country Name", "unique"=>true),
"description" =>array("header"=>"Short Descr.", "type"=>"textarea", "width"=>"210px", "req_type"=>"rt", "title"=>"Short Description", "edit_type"=>"wysiwyg", "rows"=>"7", "cols"=>"50"),
"population" =>array("header"=>"Peoples", "type"=>"enum", "source"=>$fill_from_array, "view_type"=>"dropdownlist", "width"=>"139px", "req_type"=>"ri", "title"=>"Population (Peoples)"),
"picture_url" =>array("header"=>"Image URL", "type"=>"image", "req_type"=>"st", "width"=>"210px", "title"=>"Picture", "readonly"=>false, "maxlength"=>"-1", "default"=>"", "unique"=>false, "unique_condition"=>"", "on_js_event"=>"", "target_path"=>"uploads/", "max_file_size"=>"100K", "image_width"=>"100px", "image_height"=>"100px", "file_name"=>"", "host"=>"local"),
"is_democracy" =>array("header"=>"Is Democracy", "type"=>"checkbox", "true_value"=>1, "false_value"=>0, "width"=>"210px", "req_type"=>"sy", "title"=>"Is Democraty"),
"independent_date" =>array("header"=>"Independence Day", "type"=>"date", "width"=>"210px", "req_type"=>"rt", "title"=>"Independence Day"),
"independent_time" =>array("header"=>"Independence Time", "type"=>"time", "width"=>"210px", "req_type"=>"rt", "title"=>"Independence Time")
);
$dgrid->setColumnsInEditMode($em_columns);
## *** set auto-genereted eName_1.FieldName > 'a' AND TableName_1.FieldName < 'c'"
## *** Ex.: "on_js_event"=>"onclick='alert(\"Yes!!!\");'"
$foreign_keys = array(
"region_id"=>array("table"=>"regions", "field_key"=>"id", "field_name"=>"name", "view_type"=>"dropdownlist", "order_by_field"=>"name", "order_type"=>"ASC")
);
$dgrid->setForeignKeysEdit($foreign_keys);
##
##
## +---------------------------------------------------------------------------+
## | 8. Bind the DataGrid: |
## +---------------------------------------------------------------------------+
## *** bind the DataGrid and draw it on the screen
$dgrid->bind();
ob_end_flush();
##
################################################################################
// if we in EDIT mode of the first datagrid
if(isset($_GET['f_mode']) && ($_GET['f_mode'] == "edit")){
## +---------------------------------------------------------------------------+
## | 1. Creating & Calling: |
## +---------------------------------------------------------------------------+
ob_start();
## *** (example of ODBC connection string)
## *** $result_conn = $db_conn->connect(DB::parseDSN('odbc://root:hide@address.com'));
## *** (example of Oracle connection string)
## *** $result_conn = $db_conn->connect(DB::parseDSN('oci8://root:hide@address.com:1521/mydatabase));
## *** (example of PostgreSQL connection string)
## *** $result_conn = $db_conn->connect(DB::parseDSN('pgsql://root:hide@address.com/mydatabase));
## === (Examples of connections to other db types see in "docs/pear/" folder)
// $db_conn = DB::factory('mysql'); /* don't forget to change on appropriate db type */
// $result_conn = $db_conn->connect(DB::parseDSN('mysql://'.$DB_USER.':'.$DB_PASS.'@'.$DB_HOST.'/'.$DB_NAME));
// if(DB::isError($result_conn)){ die($result_conn->getDebugInfo()); }
## *** put a primary key on the first place
$sql=" SELECT "
."presidents.id, "
."presidents.country_id, "
."presidents.name, "
."presidents.birth_date, "
."presidents.status "
."FROM presidents INNER JOIN countries ON presidents.country_id=countries.id "
."WHERE presidents.country_id = ".$dgrid->rid." ";
## *** set needed options and create a new class instance
$debug_mode = false; /* display SQL statements while processing */
$messaging = true; /* display system messages on a screen */
$unique_prefix = "fp_"; /* prevent overlays - must be started with a letter */
$dgrid1 = new DataGrid($debug_mode, $messaging, $unique_prefix, DATAGRID_DIR);
## *** set data source with needed options
$default_order_field = "id";
$default_order_type = "DESC";
$dgrid1->dataSource($db_conn, $sql, $default_order_field, $default_order_type);
##
##
## +---------------------------------------------------------------------------+
## | 2. General Settings: |
## +---------------------------------------------------------------------------+
## *** set encoding and collation (default: utf8/utf8_unicode_ci)
$dg_encoding = "utf8";
$dg_collation = "utf8_unicode_ci";
$dgrid1->setEncoding($dg_encoding, $dg_collation);
## *** set interface language (default - English)
## *** (en) - English (de) - German (se) Swedish (hr) - Bosnian/Croatian
## *** (hu) - Hungarian (es) - Espanol (ca) - Catala (fr) - Francais
## *** (nl) - Netherlands/"Vlaams"(Flemish) (it) - Italiano (pl) - Polish
## *** (ch) - Chinese (sr) - Serbian
$dg_language = "en";
$dgrid1->setInterfaceLang($dg_language);
## *** set direction: "ltr" or "rtr" (default - "ltr")
$direction = "ltr";
$dgrid1->setDirection($direction);
## *** set layouts: 0 - tabular(horizontal) - default, 1 - columnar(vertical)
$layouts = array("view"=>0, "edit"=>0, "filter"=>1);
$dgrid1->setLayouts($layouts);
## *** set modes for operations ("type" => "link|button|image")
## *** "byFieldValue"=>"fieldName" - make the field to be a link to edit mode page
if($_GET['f_mode'] == "edit"){
$modes = array(
"add"=>array("view"=>true, "edit"=>false, "type"=>"link"),
"edit"=>array("view"=>true, "edit"=>true, "type"=>"link", "byFieldValue"=>""),
"cancel"=>array("view"=>true, "edit"=>true, "type"=>"link"),
"details"=>array("view"=>false, "edit"=>false, "type"=>"link"),
"delete"=>array("view"=>true, "edit"=>false, "type"=>"image")
);
}else{
$modes = array(
"add"=>array("view"=>false, "edit"=>false, "type"=>"link"),
"edit"=>array("view"=>false, "edit"=>false, "type"=>"link", "byFieldValue"=>""),
"cancel"=>array("view"=>false, "edit"=>true, "type"=>"link"),
"details"=>array("view"=>false, "edit"=>false, "type"=>"link"),
"delete"=>array("view"=>false, "edit"=>false, "type"=>"image")
);
}
$dgrid1->setModes($modes);
## *** allow scrolling on datagrid
/// $scrolling_option = false;
/// $dgrid1->allowScrollingSettings($scrolling_option);
## *** set scrolling settings (optional)
/// $scrolling_width = "90%";
/// $scrolling_height = "100%";
/// $dgrid1->setScrollingSettings($scrolling_width, $scrolling_height);
## *** allow mulirow operations
$multirow_option = true;
$dgrid1->allowMultirowOperations($multirow_option);
$multirow_operations = array(
"delete" => array("view"=>true),
"details" => array("view"=>true),
);
$dgrid1->setMultirowOperations($multirow_operations);
## *** set CSS class for datagrid
## *** "default" or "blue" or "gray" or "green" or your css file relative path with name
## "embedded" - use embedded classes, "file" - link external css file
$css_type = "embedded";
$dgrid1->setCssClass($css_class, $css_type);
## *** set variables that used to get access to the page (like: my_page.php?act=34&id=56 etc.)
/// $http_get_vars = array("act", "id");
/// $dgrid1->setHttpGetVars($http_get_vars);
## *** set other datagrid/s unique prefixes (if you use few datagrids on one page)
## *** format (in wich mode to allow processing of another datagrids)
## *** array("unique_prefix"=>array("view"=>true|false, "edit"=>true|false, "details"=>true|false));
$anotherDatagrids = array("f_"=>array("view"=>true, "edit"=>true, "details"=>true));
$dgrid1->setAnotherDatagrids($anotherDatagrids);
## *** set DataGrid caption
$dg_caption = "Presidents";
$dgrid1->setCaption($dg_caption);
##
##
## +---------------------------------------------------------------------------+
## | 3. Printing & Exporting Settings: |
## +---------------------------------------------------------------------------+
## *** set printing option: true(default) or false
$printing_option = false;
$dgrid1->allowPrinting($printing_option);
## *** set exporting option: true(default) or false
$exporting_option = false;
$dgrid1->allowExporting($exporting_option);
##
##
## +---------------------------------------------------------------------------+
## | 4. Sorting & Paging Settings: |
## +---------------------------------------------------------------------------+
## *** set sorting option: true(default) or false
$sorting_option = true;
$dgrid1->allowSorting($sorting_option);
## *** set paging option: true(default) or false
$paging_option = true;
$rows_numeration = false;
$numeration_sign = "N #";
$dgrid1->allowPaging($paging_option, $rows_numeration, $numeration_sign);
## *** set paging settings
$bottom_paging = array("results"=>true, "results_align"=>"left", "pages"=>true, "pages_align"=>"center", "page_size"=>true, "page_size_align"=>"right");
$top_paging = array();
$pages_array = array("10"=>"10", "25"=>"25", "50"=>"50", "100"=>"100", "250"=>"250", "500"=>"500", "1000"=>"1000");
$default_page_size = 10;
$dgrid1->setPagingSettings($bottom_paging, $top_paging, $pages_array, $default_page_size);
##
##
## +---------------------------------------------------------------------------+
## | 5. Filter Settings: |
## +---------------------------------------------------------------------------+
## *** set filtering option: true or false(default)
$filtering_option = false;
$dgrid1->allowFiltering($filtering_option);
## *** set aditional filtering settings
/// $fill_from_array = array("0"=>"No", "1"=>"Yes"); /* as "value"=>"option" */
/// $filtering_fields = array(
/// "Caption_1"=>array("table"=>"tableName_1", "field"=>"fieldName_1", "source"=>"self"|$fill_from_array, "operator"=>false|true, "default_operator"=>"=|<|>|like|%like|like%|not like", "order"=>"ASC|DESC" (optional), "type"=>"textbox|dropdownlist", "case_sensitive"=>false|true, "comparison_type"=>"string|numeric|binary"),
/// "Caption_2"=>array("table"=>"tableName_2", "field"=>"fieldName_2", "source"=>"self"|$fill_from_array, "operator"=>false|true, "default_operator"=>"=|<|>|like|%like|like%|not like", "order"=>"ASC|DESC" (optional), "type"=>"textbox|dropdownlist", "case_sensitive"=>false|true, "comparison_type"=>"string|numeric|binary"),
/// "Caption_3"=>array("table"=>"tableName_3", "field"=>"fieldName_3", "source"=>"self"|$fill_from_array, "operator"=>false|true, "default_operator"=>"=|<|>|like|%like|like%|not like", "order"=>"ASC|DESC" (optional), "type"=>"textbox|dropdownlist", "case_sensitive"=>false|true, "comparison_type"=>"string|numeric|binary")
/// );
/// $dgrid1->setFieldsFiltering($filtering_fields);
##
##
## +---------------------------------------------------------------------------+
## | 6. View Mode Settings: |
## +---------------------------------------------------------------------------+
## *** set view mode table properties
$vm_table_properties = array("width"=>"70%");
$dgrid1->setViewModeTableProperties($vm_table_properties);
## *** set columns in view mode
## *** Ex.: "on_js_event"=>"onclick='alert(\"Yes!!!\");'"
## *** "barchart" : number format in SELECT SQL must be equal with number format in max_value
$vm_colimns = array(
"name" =>array("header"=>"Name", "type"=>"label", "align"=>"left", "wrap"=>"wrap", "text_length"=>"20", "case"=>"normal"),
"birth_date" =>array("header"=>"Birth Date", "type"=>"label", "align"=>"center", "wrap"=>"nowrap", "text_length"=>"-1", "case"=>"normal"),
"status" =>array("header"=>"Status", "type"=>"label", "align"=>"center", "wrap"=>"nowrap", "text_length"=>"30", "case"=>"normal")
);
$dgrid1->setColumnsInViewMode($vm_colimns);
## *** set auto-genereted columns in view mode
// $auto_column_in_view_mode = false;
// $dgrid1->setAutoColumnsInViewMode($auto_column_in_view_mode);
##
##
## +---------------------------------------------------------------------------+
## | 7. Add/Edit/Details Mode Settings: |
## +---------------------------------------------------------------------------+
## *** set add/edit mode table properties
$em_table_properties = array("width"=>"70%");
$dgrid1->setEditModeTableProperties($em_table_properties);
## *** set details mode table properties
$dm_table_properties = array("width"=>"70%");
$dgrid1->setDetailsModeTableProperties($dm_table_properties);
## *** set settings for add/edit/details modes
$table_name = "presidents";
$primary_key = "id";
$condition = "presidents.country_id = ".$dgrid->rid." ";
$dgrid1->setTableEdit($table_name, $primary_key, $condition);
## *** set columns in edit mode
## *** first letter: r - required, s - simple (not required)
## *** second letter: t - text(including datetime), n - numeric, a - alphanumeric, e - email, f - float, y - any, l - login name, z - zipcode, p - password, i - integer, v - verified
## *** third letter (optional):
## for numbers: s - signed, u - unsigned, p - positive, n - negative
## for strings: u - upper, l - lower, n - normal, y - any
## *** Ex.: "on_js_event"=>"onclick='alert(\"Yes!!!\");'"
## *** Ex.: type = textbox|textarea|label|date(yyyy-mm-dd)|datedmy(dd-mm-yyyy)|datetime(yyyy-mm-dd hh:mm:ss)|datetimedmy(dd-mm-yyyy hh:mm:ss)|image|password|enum|print|checkbox
## *** make sure your WYSIWYG dir has 777 permissions
/// $fill_from_array = array("0"=>"No", "1"=>"Yes", "2"=>"Don't know", "3"=>"My be"); /* as "value"=>"option" */
$em_columns = array(
"country_id" =>array("header"=>"Country", "type"=>"textbox", "width"=>"160px", "req_type"=>"ri", "title"=>"Country", "readonly"=>true),
"name" =>array("header"=>"Name", "type"=>"textbox", "width"=>"140px", "req_type"=>"rt", "title"=>"Name"),
"birth_date" =>array("header"=>"Birth Date", "type"=>"date", "width"=>"80px", "req_type"=>"rt", "title"=>"Birth Date"),
"status" =>array("header"=>"Status", "type"=>"enum", "req_type"=>"st", "width"=>"210px", "title"=>"Status", "readonly"=>false, "maxlength"=>"-1", "default"=>"", "unique"=>false, "unique_condition"=>"", "on_js_event"=>"", "source"=>"self", "view_type"=>"dropdownlist")
);
$dgrid1->setColumnsInEditMode($em_columns);
## *** set auto-genereted columns in edit mode
// $auto_column_in_edit_mode = false;
// $dgrid1->setAutoColumnsInEditMode($auto_column_in_edit_mode);
## *** set foreign keys for add/edit/details modes (if there are linked tables)
## *** Ex.: "condition"=>"TableName_1.FieldName > 'a' AND TableName_1.FieldName < 'c'"
## *** Ex.: "on_js_event"=>"onclick='alert(\"Yes!!!\");'"
$foreign_keys = array(
"country_id"=>array("table"=>"countries ", "field_key"=>"id", "field_name"=>"name", "view_type"=>"dropdownbox", "condition"=>"")
/// "For_js_event"=>"")
);
$dgrid1->setForeignKeysEdit($foreign_keys);
##
##
## +---------------------------------------------------------------------------+
## | 8. Bind the DataGrid: |
## +---------------------------------------------------------------------------+
## *** bind the DataGrid and draw it on the screen
$dgrid1->bind();
ob_end_flush();
##
################################################################################
}
</font>
<pre>
</body>
</html>