| Ratings |  | Unique User Downloads |  | Download Rankings | 
| Not enough user ratings |  | Total: 571 |  | All time:  5,377 This week: 31  | 
|  | 
| Description |  | Author | 
| This class can generate SQL and CRUD forms based on remoteDB class.
 It is a class derived from the original work by Mahboobz. This version was improved in the following ways:
 
 Version 4:
 Update: replaced irp_commonSQL.php (obsolete) with common_pdo.php
 
 Version 3:
 - Added 2 more callback: before_save(), before_updated()
 - Tested on Master-detail tables: see example pages
 - Tested on view tables.
 
 Version 3: added 2 new hooks, and master->detail capability
 added 2 functions: setEdit() and setDelete() to control buttons
 Version 2:
 - Added $this->index array to store one or more PK names (in place of one pre-defined PK='id')
 - Added get_where(), get_hidden($record) to handle multiple PKs
 - Added optional hook and callback to customize the CRUD page:
 1) special input fields: select, radio... (crud_get_input)
 2) special edit  fields: select, radio... (crud_get_edit)
 3) special show  fields: links, references... (crud_get_show)
 4) more actions in table (crud_action_hook)
 - Added 3 static utility: make_select, make_radio and make_checkbox for input/edit fields
 - Added CONFIRM to delete
 - Added $extrasql parameter to renderVertically(), to extend the basic sql: "SELECT * FROM ".$this->table
 - Cosmetic minor variations, use of css file (in: remoteDB/css/style.css)
 
 
 |  | 
|  |  | Innovation award 
  Nominee: 3x
 
 Winner: 1x
 | 
 
 | 
Recommendations
Example
| 
<?php 
/*
 CRUD3 EXAMPLE GENERIC PAGE.... CHANGE for customization
 */
 //
 $r=dirname(__FILE__);
 include("$r/lib/crudClass3.php");
 require_once ("$r/lib/irp_commonSQL.php");
 
 if (isset($_GET['id_cliente'])){                                       // CHANGE:  here the PK
 $_POST = $_GET;   // POST/GET compatible
 }
 echo '<html><head><meta content="text/html; charset=UTF_8" http-equiv="content-type">';
 echo StyleSheet();
 echo "</head><body>";
 //
 echo "<h1> Tavola <b>Clienti</b>: <i>add/edit/delete records</i></h1>";// CHANGE:  page Title
 
 echo "<div class='note' align='center'>
 Questa tabella definisce i vari attributi dei <b>clienti</b>.
 </div>";                                                               //  CHANGE: intro boz
 //--------------------------------------------------  CALLBACKS (if required)
 // callbacks use examples:
 /*
 //callback for show fields (view)
 function crud_get_show($field, $value) {
 $code = $value; // general case
 // custom special cases:
 // change id_user on users.name
 if ($field == 'id_user'){
 $code = sqlValue("SELECT name FROM users WHERE $field = $value");
 }
 // to center value in cell
 if ($field == 'unit'){
 $code = "<CENTER>$value</CENTER>";
 }
 
 return $code;
 }
 */
 /*
 // callback for input fields (new)
 function crud_get_input($field){
 $code = "$field: <input type='text' name='$field' /><br>";  // general case
 // custom special cases
 // choose id_user from a user.name list
 if ($field == 'id_user'){
 $code = crudClass::make_select($field, "SELECT id_user, name FROM users order by name");   // users.name list
 }
 // date input field
 if ($field == 'arrival'){
 $code = "$field: <input type='date' name='$field' /><br>";
 }
 
 return $code;
 }
 */
 /*
 //callback for input fields (edit)
 function crud_get_edit($field, $value){
 $code = "$field: <input type='text' name='$field' value='$value' /><br>";  // general case
 // custom special cases
 // make id_town field readonly
 if ($field == 'id_town'){
 "$field: <input type='text' name='$field' value='$value' readonly /><br>";
 }
 // use radio buttons for ENUM:
 if ($field == 'unita_misura'){
 $optionlist= 'Kg,Nr.';
 $code = crudClass::make_radio($field, $optionlist, $value);   // radio
 }
 
 return $code;
 }
 */
 /*
 //callback add action (view)
 function crud_action_hook($record){
 // ad action button 'test_user'
 $code =  "<td><form action='test_user.php'  mode='POST'>";
 $code .= "<input type='hidden' name='id_user' value=".$record['id_user'].">";
 $code .= "<input type='submit' name='test_user' value='USER TEST'></form></td>";
 return $code;
 }
 */
 /*
 //callback before create (new)
 function    before_create($values){
 // $values[2] is three times $values[1]
 $values[2]= 3 *  $values[1] ;
 return $values;
 */
 /*
 function before_update($strings){
 // note: strings are like: $strings[2] => "`id_user` = '16'"
 // make id_user = 22
 $forced = 22;
 $strings[2]="`id_user` = '$forced'";
 return $strings;
 */
 
 // -------------------------------------------------- END CALLBACKS
 
 $crud = new crudClass('clienti','ragione_sociale,piva,cf,indirizzo,cap,id_citta,contatto,telefono,fax,email,destinazione,indirizzo2,cap2,id_citta2,telefono2,commissione,note','id_cliente' );// CHANGE: Initiate the class with table information: table-name, fields, pk
 
 // ================= don't change
 if (isset($_POST['submit'])){
 $create_sql = $crud->create();//Fetch INSERT query
 sql($create_sql);
 }
 if (isset($_POST['update'])){
 $update_sql = $crud->update();//Fetch UPDATE query
 sql($update_sql);
 }
 if (isset($_POST['delete'])){
 $delete_sql = $crud->delete();//Fetch DELETE query
 sql($delete_sql);
 }
 // -------------
 if (isset($_POST['edit'])){
 // edit
 echo "<div class='note' align='right'>";
 echo $crud->renderEditor();//Prepare data edit form
 echo '</div>' ;
 } else {
 // or insert
 echo "<div class='note' align='right'>";
 echo $crud->create_form();//Prepare data entry form
 echo '</div>';
 }
 // table
 //  =============== don't change ends
 echo $crud->renderVertically(' ORDER BY `ragione_sociale`');// CHANGE: for WHERE or ORDER or LIMIT
 
 echo '<hr><center> <a href="javascript:history.go(-1)"><<< back </a>  |  <a href="index.html">home</a> </center><br>'; //                    CHANGE: end page menu
 echo "</body></html>";
 
 ?>
 
 | 
|  | Applications that use this package |  | 
No pages of applications that use this class were specified.
 If you know an application of this package, send a message to the author to add a link here.
 If you know an application of this package, send a message to the author to add a link here.