Source for file OCSP_FORM_DBCTRL_mySQL.phpclass

Documentation is available at OCSP_FORM_DBCTRL_mySQL.phpclass

  1. <?php
  2. /**
  3.   * Class file OCSP_FORM_DBCTRL_mySQL.phpclass
  4.   *
  5.   *
  6.   * @project    Open CSP-Management
  7.   * @package    forms
  8.   * @category   dbms_form
  9.   *
  10.   * @author     Peter Krebs (pk) <pitlinz@users.sourceforge.net>
  11.   * @license    http://opensource.org/licenses/gpl-license.php GNU Public License
  12.   *
  13.   * @since  pk-07-08-04
  14.   *
  15.   * @requires OCSP_FORM_DBCONTROLL.phpclass
  16.   * 
  17.   * @version $Id: OCSP_FORM_DBCTRL_mySQL.phpclass,v 1.8 2008/06/02 21:09:27 pitlinz Exp $
  18.   */
  19.  
  20. require_once dirname(__FILE__)."/OCSP_FORM_DBCONTROLL.phpclass";
  21.  
  22. /**
  23.   * class OCSP_FORM_DBCONTROLL
  24.   *
  25.   * root class of database handling for form fields
  26.   * 
  27.   * @project    Open CSP-Management
  28.   * @package    forms
  29.   * @category   dbms_form
  30.   *
  31.   * @author     Peter Krebs (pk) <pitlinz@users.sourceforge.net>
  32.   * @license    http://opensource.org/licenses/gpl-license.php GNU Public License
  33.   *
  34.   * @since  pk-07-08-04
  35.   *
  36.   * @version $Id: OCSP_FORM_DBCTRL_mySQL.phpclass,v 1.8 2008/06/02 21:09:27 pitlinz Exp $
  37.   */
  38. {
  39.     /** generates a colDesc
  40.       *
  41.       * @param string $colName 
  42.       * @param string $colType 
  43.       * @param string $table 
  44.       * @param int $size 
  45.       * @param boolean $debug 
  46.       *
  47.       * @return array 
  48.       *
  49.       */
  50.     function generateColDesc($colName,$colType,$table=__OCSP_NO_DBFIELD__,$size='0',$debug=FALSE)
  51.     {
  52.         $arr_colDesc=parent::generateColDesc($colName,$colType,$table,$size,$debug);
  53.         
  54.         switch($colType{
  55.             case "varchar":
  56.             case "string":
  57.             case "char"// <pk-08-02-27>
  58.                 $arr_colDesc['TYPE']="VARCHAR";
  59.                 if (!intval($size)) $size=32;
  60.                 else if ($size>255$size=255;
  61.                 $arr_colDesc['LEN']=$size;
  62.                 break;
  63.             case "int":
  64.             case "integer":
  65.             case "tinyint":
  66.             case "smallint":
  67.             case "bigint":
  68.                 if (!intval($size))
  69.                 {
  70.                     $arr_colDesc['TYPE']="INT";
  71.                     $arr_colDesc['LEN'="11";
  72.                 }
  73.                 if (intval($size5)
  74.                 {
  75.                     $arr_colDesc['TYPE']="TINYINT";
  76.                     $arr_colDesc['LEN'=$size;
  77.                 else if (intval($size7{
  78.                     $arr_colDesc['TYPE']="SMALLINT";
  79.                     $arr_colDesc['LEN'=$size;
  80.                 else if (intval($size12{
  81.                     $arr_colDesc['TYPE']="INT";
  82.                     $arr_colDesc['LEN'=$size;
  83.                 else {
  84.                     if ($size 20$size=20;
  85.                     $arr_colDesc['TYPE']="BIGINT";
  86.                     $arr_colDesc['LEN'=$size;
  87.                 }
  88.                 break;
  89.             case "time":
  90.                 $arr_colDesc['TYPE']="TIME";
  91.                 $arr_colDesc['LEN']=8;
  92.                 break;
  93.             case "date":
  94.                 $arr_colDesc['TYPE']="DATE";
  95.                 $arr_colDesc['LEN']=10;
  96.                 break;
  97.             case "datetime":
  98.                 $arr_colDesc['TYPE']="DATETIME";
  99.                 $arr_colDesc['LEN']=19;
  100.                 break;
  101.             case "timestamp":
  102.                 $arr_colDesc['TYPE']="TIMESTAMP";
  103.                 $arr_colDesc['LEN']=14;
  104.                 break;
  105.             case "float":     // <pk-08-06-02 />
  106.             case "real":
  107.                 $arr_colDesc['TYPE']="FLOAT";
  108.                 $arr_colDesc['LEN']=NULL;
  109.                 break;
  110.             case "text":
  111.                 $arr_colDesc['TYPE']="TEXT";
  112.                 $arr_colDesc['LEN']=NULL;
  113.                 break;
  114.             case "blob":
  115.                 $arr_colDesc['TYPE']="BLOB";
  116.                 $arr_colDesc['LEN']=NULL;
  117.                 break;
  118.             case "layout":  // no database value only template or fix text form output
  119.                 $arr_colDesc['TYPE']="LAYOUT";
  120.                 $arr_colDesc['FLAGS']=__OCSP_NO_DBFIELD__;
  121.                 $arr_colDesc['TABLE']=__OCSP_NO_DBFIELD__;
  122.                 $arr_colDesc['LEN']=0;
  123.                 break;
  124.             default:
  125.                 ocsp_logError(__FILE__,__LINE__,"$colType not defined",E_NOTICE);
  126.         }
  127.         return $arr_colDesc;
  128.     }
  129.     
  130.     /**
  131.       * @param array $colDesc 
  132.       * @param boolean $debug 
  133.       *
  134.       * @param return DBMS_FIELD (the class best fit for dbType)
  135.       *
  136.       * @todo OCSP_FORM_DBCTRL_mySQL::use settings in T_DBMS_FIELDDESC
  137.       */
  138.     function generateField($colDesc,$debug=FALSE)
  139.     {
  140.         if ($debugechoDebugMethod(__FILE__,get_class($this),"OCSP_FORM_DBCONTROLL::generateField()");
  141.         
  142.         switch(strtolower($colDesc['TYPE']))
  143.         {
  144.             case "tinyint":
  145.                 if ($colDesc['LEN']==1
  146.                 {
  147.                     require_once __OCSP_PHPINCPATH__."db/frmClasses/DBMS_FIELD_CHECKBOX.phpclass";
  148.                     return new DBMS_FIELD_CHECKBOX($colDesc['TABLE'],$colDesc['COLNAME'],$colDesc);
  149.                 }
  150.             case "smallint":
  151.             case "int":
  152.             case "bigint":
  153.                 if ($colDesc['AUTO_INCREMENT']
  154.                 {
  155.                     require_once __OCSP_PHPINCPATH__."db/frmClasses/DBMS_FIELD_AUTINC_KEY.phpclass";
  156.                     return new DBMS_FIELD_AUTINC_KEY($colDesc['TABLE'],$colDesc['COLNAME'],$colDesc);
  157.                 else {
  158.                     require_once __OCSP_PHPINCPATH__."db/frmClasses/DBMS_FIELD_INT.phpclass";
  159.                     return new DBMS_FIELD_INT($colDesc['TABLE'],$colDesc['COLNAME'],$colDesc);
  160.                 }
  161.             case "float":
  162.                 require_once __OCSP_PHPINCPATH__."db/frmClasses/DBMS_FIELD_FLOAT.phpclass";
  163.                 return new DBMS_FIELD_FLOAT($colDesc['TABLE'],$colDesc['COLNAME'],$colDesc);
  164.             case "text":
  165.                 require_once __OCSP_PHPINCPATH__."db/frmClasses/DBMS_FIELD_TEXTAREA.phpclass";
  166.                 return new DBMS_FIELD_TEXTAREA($colDesc['TABLE'],$colDesc['COLNAME'],$colDesc);
  167.             case "date":
  168.             case "datetime":
  169.                 require_once __OCSP_PHPINCPATH__."db/frmClasses/DBMS_FIELD_DATE.phpclass";
  170.                 return new DBMS_FIELD_DATE($colDesc['TABLE'],$colDesc['COLNAME'],$colDesc);
  171.             case "timestamp":
  172.                 require_once __OCSP_PHPINCPATH__."db/frmClasses/DBMS_FIELD_TIMESTAMP.phpclass";
  173.                 return new DBMS_FIELD_TIMESTAMP($colDesc['TABLE'],$colDesc['COLNAME'],$colDesc);
  174.             case "char"// <pk-08-01-23 />
  175.               case "varchar":
  176.                 if ($colDesc['LEN'128)
  177.                 {
  178.                     require_once __OCSP_PHPINCPATH__."db/frmClasses/DBMS_FIELD_TEXTAREA.phpclass";
  179.                     return new DBMS_FIELD_TEXTAREA($colDesc['TABLE'],$colDesc['COLNAME'],$colDesc);
  180.                 else {
  181.                     require_once __OCSP_PHPINCPATH__."db/frmClasses/DBMS_FIELD.phpclass";
  182.                     return new DBMS_FIELD($colDesc['TABLE'],$colDesc['COLNAME'],$colDesc);
  183.                 }
  184.             case "layout":
  185.                 require_once __OCSP_PHPINCPATH__."db/frmClasses/DBMS_FIELD_LAYOUT.phpclass";
  186.                 return new DBMS_FIELD_LAYOUT($colDesc['TABLE'],$colDesc['COLNAME'],$colDesc);
  187.             default:
  188.                 ocsp_logError(__FILE__,__LINE__,"unknown column type: <pre>".print_r($colDesc,TRUE)."</pre>",E_NOTICE);
  189.                 require_once __OCSP_PHPINCPATH__."db/frmClasses/DBMS_FIELD.phpclass";
  190.                 return new DBMS_FIELD($colDesc['TABLE'],$colDesc['COLNAME'],$colDesc);
  191.         }
  192.     }
  193.     
  194.  
  195. ?>

Documentation generated on Thu, 08 Jan 2009 17:46:03 +0100 by phpDocumentor 1.4.0a2