Source for file CMS_FORM_PAGE.phpclass

Documentation is available at CMS_FORM_PAGE.phpclass

  1. <?php
  2. /**
  3.   * Class file CMS_FORM_PAGE.phpclass
  4.   *
  5.   * @project    Open CSP-Management
  6.   * @package    cms
  7.   *
  8.   * @author     Peter Krebs <p.krebs@wpus.at>
  9.   * @copyright  (c) 2002-2005 by Peter Krebs and WURM und Partner Unternehmensservice GesmbH.
  10.   * @license    http://opensource.org/licenses/gpl-license.php GNU Public License
  11.   *
  12.   * @version $Id: CMS_FORM_PAGE.phpclass,v 1.7 2008/12/12 17:35:14 pitlinz Exp $
  13.   */
  14.  
  15. pcf_require_class('CMS_PAGE',dirname(__FILE__)."/");
  16. pcf_require_class('OCSP_FORM',"db/forms/");
  17.  
  18. /**
  19.   * class CMS_FORM_PAGE
  20.   *
  21.   * @project    Open CSP-Management
  22.   * @package    cms
  23.   * @category   page
  24.   *
  25.   * @author     Peter Krebs <p.krebs@amicas.at>
  26.   * @license    http://opensource.org/licenses/gpl-license.php GNU Public License
  27.   *
  28.   * @since      pk-04-09-08
  29.   * @version    pk-04-12-21
  30.   * @version $Id: CMS_FORM_PAGE.phpclass,v 1.7 2008/12/12 17:35:14 pitlinz Exp $
  31.   */
  32. class CMS_FORM_PAGE extends CMS_PAGE 
  33. {
  34.     // ---------------------------------------------------------------------------
  35.     // constants
  36.     // ---------------------------------------------------------------------------
  37.     
  38.     /**
  39.      * @constant string CLASS_SRC_FILE
  40.      *
  41.      * @abstract
  42.      */
  43.     const CLASS_SRC_FILE = __FILE__;
  44.     
  45.     // ---------------------------------------------------------------------------
  46.     // class (static)
  47.     // ---------------------------------------------------------------------------
  48.     
  49.     /*** class vars ------------------------------------------------------ */
  50.     
  51.     /*** class methods --------------------------------------------------- */
  52.     
  53.     // ---------------------------------------------------------------------------
  54.     // object vars
  55.     // ---------------------------------------------------------------------------
  56.         
  57.     /*** compostion --------------------------------------------------- */
  58.     
  59.     /**
  60.       * @var OCSP_FORM $frmObj 
  61.       ***/
  62.     protected $pageFrmObj = NULL;
  63.     
  64.     /**
  65.       * @var DBMS_TABLEOBJ $tblObj 
  66.       * @since pk-07-01-11
  67.       ***/
  68.     protected $tblObj=NULL;
  69.     
  70.     
  71.     /*** attributes  -------------------------------------------------- */
  72.         
  73.     /**
  74.       * @var int $MYFRM_ID id of the Form
  75.       ***/
  76.     protected $MYFRM_ID=0;
  77.     
  78.     /**
  79.      * the form class to use
  80.      *
  81.      * @var string 
  82.      */
  83.     protected $FRMOBJECTCLASS = "OCSP_FORM";
  84.  
  85.     /**
  86.      * the form class to use
  87.      *
  88.      * @var string 
  89.      */
  90.     protected $FRMOBJECTINC = "db/forms/";
  91.     
  92.     
  93.     /**
  94.       * @var int $FRMMODE 
  95.       ***/
  96.     protected $FRMMODE=0;
  97.  
  98.     /**
  99.       * @var string $FRMTAGADD 
  100.       ***/
  101.     protected $FRMTAGADD="";
  102.  
  103.     /**
  104.       * @var int $FRMMODE 
  105.       ***/
  106.     protected $FRMCANCELCMD="history.back();";
  107.  
  108.  
  109.     /**
  110.       * @var array $pageFrmData 
  111.       ***/
  112.     protected $pageFrmData = array();
  113.  
  114.     // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  115.     // getter / setter
  116.     // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  117.     
  118.     public function getPageFormId()
  119.     {
  120.         return intval($this->MYFRM_ID);
  121.     }
  122.     
  123.     /**
  124.      * returns the class name of the form
  125.      * 
  126.      * if $autoInclude the source is included
  127.      *
  128.      * @param boolean $autoInc 
  129.      * @return string 
  130.      */
  131.     public function getFormObjClass($autoInc=True,$debug)
  132.     {
  133.         if (empty($this->FRMOBJECTCLASS))
  134.         {
  135.             $this->FRMOBJECTCLASS = "OCSP_FORM";
  136.             if ($autoInc)
  137.             {
  138.                 pcf_require_class('OCSP_FORM',"db/forms/");
  139.             }
  140.             return $this->FRMOBJECTCLASS;                       
  141.         else {
  142.             if ($autoInc && !class_exists($this->FRMOBJECTCLASS))
  143.             {                
  144.                 if (!empty($this->FRMOBJECTINC))
  145.                 {
  146.                     pcf_require_class($this->FRMOBJECTCLASS,$this->FRMOBJECTINC);
  147.                 else {
  148.                     return Null;
  149.                 }
  150.             }
  151.             return $this->FRMOBJECTCLASS;
  152.         }                
  153.     }
  154.     
  155.     // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  156.     // db methods
  157.     // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  158.         
  159.     /**
  160.       * returns a array of variables used by the page object
  161.       *
  162.       * array[varName]=array(
  163.       *     [TYPE]          datatype
  164.       *     [FLDCLASS]      name of DBMS_FIELD* class
  165.       *     [CLASSVALS]     array of values of [FLDCLASS]
  166.       *
  167.       * @global array $OCSP_CONF 
  168.       *
  169.       * @returns array
  170.       *
  171.       * @since pk-04-08-10
  172.       * @version pk-05-01-14
  173.       *
  174.       */
  175.     function getObjVarDef({
  176.         $retArr=parent::getObjVarDef();
  177.         
  178.         // requirements        
  179.         pcf_require_class('DBMS_FIELD_HEADLINE',"db/frmClasses/");        
  180.         pcf_require_class('DBMS_FIELD_DBMS_FORMSELECT',"db/frmClasses/");
  181.         pcf_require_class('DBMS_FIELD_SELECTLIST',"db/frmClasses/");
  182.         pcf_require_class('DBMS_FIELD_TEXTAREA',"db/frmClasses/");
  183.         pcf_require_class('DBMS_FIELD_PAGESELECT',"db/frmClasses/");
  184.         
  185.         $retArr['MYFORMHAEDLINE']=array(
  186.             "TYPE"      => "layout",
  187.             "FLDCLASS"  => "DBMS_FIELD_HEADLINE",
  188.                 "CLASSVALS" =>array(
  189.                     "label"         => "<b>" t_admin("FORMULAR""</b>"
  190.             )
  191.         );
  192.  
  193.         $retArr['MYFORM']array(
  194.             "TYPE"      => "int",
  195.             "FLDCLASS"  => "DBMS_FIELD_DBMS_FORMSELECT",
  196.             "CLASSVALS" =>array(
  197.                 "label"             => t_admin("Formular"),
  198.                 "isSearchable"      => True,
  199.                 "showInList"        => True,
  200.                 "allowNullSelect"   => False,
  201.                 "reloadFormOnChange"=> True
  202.             )
  203.         );
  204.  
  205.        $retArr['FRMMODE']array(
  206.             "TYPE"      => "string",
  207.             "FLDCLASS"  => "DBMS_FIELD_SELECTLIST",
  208.             "CLASSVALS" =>array(
  209.                 "label"         => t_admin("Modus"),
  210.                 "allowNull"     => False,
  211.                 "isSearchable"  => False,
  212.                 "showInList"    => True,
  213.                 "myValues"      => array(
  214.                         FRM_MODE_READONLY   => "Anzeigen",
  215.                         FRM_MODE_NEW        => "Datensatz hinzufgen",
  216.                         FRM_MODE_EDIT       => "Datensatz bearbeiten",
  217.                         FRM_MODE_DELETE     => "Datensatz l&ouml;schen",     /* <pk-04-12-21 /> */
  218.                         // FRM_MODE_HIDDEN  => "versteckt",
  219.                         // FRM_MODE_LIST'   => "Liste",
  220.                         FRM_MODE_SEARCH  => "Suchmaske"
  221.                     ),
  222.                 "reloadFormOnChange" => False
  223.             )
  224.         );
  225.  
  226.         $retArr['FRMACTION']=array(
  227.             "TYPE"      => "string",
  228.             "FLDCLASS"  => "DBMS_FIELD",
  229.             "CLASSVALS" =>array(
  230.                 "label"         => "form.action",
  231.                 "allowNull"     => False,
  232.                 "isSearchable"  => False,
  233.                 "showInList"    => False,
  234.                 "size"          => 40,
  235.                 "defaultValue"  => "\$@PROJECT|SYSTEMURL\$forms/insert.php?"
  236.             )
  237.         );
  238.  
  239.          $retArr['FRMCANCELCMD']=array(
  240.             "TYPE"      => "string",
  241.             "FLDCLASS"  => "DBMS_FIELD_TEXTAREA",
  242.             "CLASSVALS" =>array(
  243.                 "label"         => "Cancel Javescript:",
  244.                 "allowNull"     => True,
  245.                 "isSearchable"  => False,
  246.                 "showInList"    => False,
  247.                 "defaultValue"  => "history.go(-1);",
  248.                 "rows"          => 2
  249.             )
  250.         );
  251.  
  252.         $retArr['NEXTPAGEHAEDLINE']=array(
  253.             "TYPE"      => "layout",
  254.             "FLDCLASS"  => "DBMS_FIELD_HEADLINE",
  255.                 "CLASSVALS" =>array(
  256.                     "label"         => "<b>n&auml;chste Seite</b>",
  257.                     "showQuery"     =>"('$*FRMMODE$' = ".FRM_MODE_READONLY.")",
  258.             )
  259.         );
  260.  
  261.         $retArr['FRMNEXTURL'array(
  262.             "TYPE"      => "string",
  263.             "FLDCLASS"  => "DBMS_FIELD",
  264.             "CLASSVALS" => array(
  265.                 "label"     => "n&auml;chste Seite URL",
  266.                 "allowNull" => True,
  267.                 "showInList"=> False,
  268.                 'size'      => 40,
  269.                 "showQuery"     =>"('$*FRMMODE$' = ".FRM_MODE_READONLY.")",
  270.             )
  271.         );
  272.         
  273.         $retArr['FRMNEXTPAGE']=array(
  274.             "TYPE"      =>  "int",
  275.             "FLDCLASS"  =>  "DBMS_FIELD_PAGESELECT",
  276.             "CLASSVALS" =>  array(
  277.                 "label"             => "oder n&auml;chste Seite",
  278.                 
  279.                 "showExpiredPages"  => True,
  280.                 "myProjSelectMode"  => 3,
  281.                 "fldDebug"          => False,
  282.                 "showFullTree"      => True,
  283.                 "allowNull"         => True,
  284.                 'nullLabel'         => "[URL oder vom Script]",
  285.                 'nullToZero'        => True,
  286.                 'allowNullSelect'   => True,
  287.                 "showQuery"     =>"('$*FRMMODE$' = ".FRM_MODE_READONLY.")",
  288.             )
  289.         );
  290.         $retArr['FRMNEXTURLGETTMPL'array(
  291.             "TYPE"      => "string",
  292.             "FLDCLASS"  => "DBMS_FIELD",
  293.             "CLASSVALS" => array(
  294.                 "label"         => "GET Template",
  295.                 "allowNull"     => True,
  296.                 "showInList"    => False,
  297.                 'size'          => 40,
  298.                 "showQuery"     =>"('$*FRMMODE$' = ".FRM_MODE_READONLY.")",
  299.             )
  300.         );
  301.  
  302.  
  303.         // <pk-07-02-15>
  304.         $retArr['MYFORMVALUES']=array(
  305.             "TYPE"      => "layout",
  306.             "FLDCLASS"  => "DBMS_FIELD_HEADLINE",
  307.                 "CLASSVALS" =>array(
  308.                     "label"         => "<b>FORMULAR Werte</b>"
  309.             )
  310.         );
  311.         // </pk-07-02-15>
  312.  
  313.         $retArr['FRMSELWHEREAND']=array(
  314.             "TYPE"      => "string",
  315.             "FLDCLASS"  => "DBMS_FIELD_TEXTAREA",
  316.             "CLASSVALS" =>array(
  317.                 "label"         => "SELECT WHERE ... AND:",
  318.                 "allowNull"     => True,
  319.                 "isSearchable"  => False,
  320.                 "showInList"    => False,
  321.                 "defaultValue"  => "",
  322.                 "rows"          => 2,
  323.                 "showQuery"     =>"('$*FRMMODE$' <> ".FRM_MODE_NEW." AND '$*FRMMODE$' <> ".FRM_MODE_SEARCH.")",
  324.             )
  325.         );
  326.  
  327.         // <pk-07-02-15>
  328.         $retArr['FRMDEFAULTVALUES']=array(
  329.             "TYPE"      => "string",
  330.             "FLDCLASS"  => "DBMS_FIELD_TEXTAREA",
  331.             "CLASSVALS" =>array(
  332.                 "label"         => "Default Werte <br /><span style=\"font-size: 85%\">(COLUMN=WERT je Zeile)</span",
  333.                 "allowNull"     => True,
  334.                 "isSearchable"  => False,
  335.                 "showInList"    => False,
  336.                 "defaultValue"  => "",
  337.                 "rows"          => 2,
  338.                 "showQuery"     =>"('$*FRMMODE$' = ".FRM_MODE_NEW.")",
  339.             )
  340.         );
  341.         // </pk-07-02-15>
  342.  
  343.         $retArr['MYFORMOBJHAEDLINE']=array(
  344.             "TYPE"      => "layout",
  345.             "FLDCLASS"  => "DBMS_FIELD_HEADLINE",
  346.                 "CLASSVALS" =>array(
  347.                     "label"         => "<b>FORMULAR TABLE Object</b>"
  348.             )
  349.         );
  350.  
  351.         
  352.         $retArr['FRMOBJECTINC'array(
  353.             "TYPE"      => "string",
  354.             "FLDCLASS"  => "DBMS_FIELD",
  355.             "CLASSVALS" => array(
  356.                 "label"     => "Class File",
  357.                 "allowNull" => True,
  358.                 "showInList"=> False,
  359.                 "toolTip"   => "\$@PROJECT|PHPINCPATH\$module/TBLCLASS.phpinc",
  360.                 "size"      => 64
  361.             )
  362.         );
  363.  
  364.         $retArr['FRMOBJECTCLASS'array(
  365.             "TYPE"      => "string",
  366.             "FLDCLASS"  => "DBMS_FIELD",
  367.             "CLASSVALS" => array(
  368.                 "label"     => "Class",
  369.                 "allowNull" => True,
  370.                 "showInList"=> False,
  371.             )
  372.         );
  373.  
  374.         $retArr['FRMOBJECTCLASSNEWPARAMS'array(
  375.             "TYPE"      => "string",
  376.             "FLDCLASS"  => "DBMS_FIELD",
  377.             "CLASSVALS" => array(
  378.                 "label"     => "new Parameter (template)",
  379.                 "allowNull" => True,
  380.                 "showInList"=> False,
  381.                 'toolTip'   => "Parameter liste die bei new object(...) verwendet werden",
  382.             )
  383.         );
  384.  
  385.  
  386.         return $retArr;
  387.     }
  388.     
  389.     /**
  390.       * function load table object
  391.       *
  392.       * @param booelean $debug 
  393.       *
  394.       * @returns DBMS_TABLEOBJ
  395.       *
  396.       * @since pk-07-01-11
  397.       *
  398.       ***/
  399.     function &getTblObj($debug=False{
  400.         if ($debugechoDebugMethod(__FILE__,get_class($this),"CMS_FORM_PAGE::getTblObj()");
  401.         
  402.         if (!empty($this->FRMOBJECTCLASS)) {
  403.             if (!pcf_is_instance_of($this->tblObj,$this->FRMOBJECTCLASS)) {
  404.                 $s_cmd="";
  405.                 if (!class_exists($this->FRMOBJECTCLASS)) {
  406.                     $s_classInc=pcf_tmpl_parse($this->FRMOBJECTINC,$this->getDBVal());
  407.                     if ($debugechoDebug(__FILE__,"<p>Class Include: ".$s_classInc."</p>");
  408.                     if (file_exists($s_classInc)) {
  409.                         require_once $s_classInc;
  410.                         if (class_exists($this->FRMOBJECTCLASS)) {
  411.                             $s_cmd="\$this->tblObj=new ".$this->FRMOBJECTCLASS;
  412.                         }
  413.                     }
  414.                 else {
  415.                     $s_cmd="\$this->tblObj=new ".$this->FRMOBJECTCLASS;
  416.                 }
  417.                 
  418.                 if (!empty($s_cmd)) {
  419.                     $s_cmd.="(".pcf_tmpl_parse($this->FRMOBJECTCLASSNEWPARAMS,$this->getDBVal()).");";
  420.                     if ($debugechoDebug(__FILE__,"<p>cmd: ".$s_cmd."</p>");
  421.                     eval($s_cmd);
  422.                 
  423.             
  424.         
  425.         return $this->tblObj;
  426.     }
  427.  
  428.     /**
  429.       * loads the form object
  430.       *
  431.       * @param booelean $debug 
  432.       * 
  433.       * @global array $OCSP_CONF 
  434.       *
  435.       * @return OCSP_FORM 
  436.       *
  437.       * @version pk-07-01-11
  438.       * @version pk-08-10-02
  439.       * 
  440.       */
  441.     function loadFrmObj($debug=False{
  442.         
  443.         pcf_require_class('OCSP_FORM',"db/forms/");
  444.       
  445.         if ($debugechoDebugMethod(__FILE__,get_class($this),"CMS_FORM_PAGE::loadFrmObj()","ID: ".$this->MYFORM."\nDBMS_FORMS:<pre>".pcf_print_r($GLOBALS['DBMS_FORMS'][$this->MYFORM],True,3)."</pre>");
  446.                
  447.         if (!($this->pageFrmObj=OCSP_FORM::factory_from_id($this->MYFORM,NULL,$debug))) {
  448.             if ($debugechoDebugLine(__FILE__,__LINE__,"<p>ERROR FORM ID ".$this->MYFORM." NOT FOUND</p>\n");
  449.             return False;
  450.         }
  451.         return True;
  452.     }
  453.  
  454.     /**
  455.       * creates a data array name
  456.       *
  457.       * @returns string;
  458.       *
  459.       ***/
  460.     function getValArrName({
  461.         return substr(str_replace("=","","DA_".base64_encode($this->pageFrmObj->getName().$this->getId())),0,20);
  462.     }
  463.  
  464.     
  465.     /**
  466.      * returns the form data
  467.      * 
  468.      * set post and get values
  469.      *
  470.      * $keysFrom is a string representing where
  471.      * keys should obtaioned
  472.      * G->$_GET P->$_POST C->$_COOKIE S->$_SESSION A->$_SERVER
  473.      *
  474.      * $keysFrom ist used to poplute from the database whereas
  475.      * 
  476.      * @param boolean $forceDefault 
  477.      * @param string $keysFrom 
  478.      * @param boolean $debug 
  479.      * 
  480.      * @return array 
  481.      */
  482.     function getPageFrmData($forceDefault=False,$keysFrom="GP",$debug=False{
  483.         if ($debugechoDebugMethod(__FILE__,get_class($this),"CMS_FORM_PAGE::getPageFrmData()");
  484.         if (!$this->pageFrmObj$this->loadFrmObj();
  485.  
  486.         if ($forceDefault{
  487.             return $this->pageFrmObj->getDefaultValArr();
  488.         }
  489.  
  490.         if ($debugecho "<p>ARRNAME: ".$this->getValArrName()."</p><pre>".print_r($_POST[$this->getValArrName()],True)."</pre>";
  491.  
  492.         if (is_array($_POST[$this->getValArrName()])) {
  493.             return $_POST[$this->getValArrName()];
  494.         }
  495.         
  496.         
  497.         if (!empty($this->FRMOBJECTCLASS)) {
  498.             if ($this->getTblObj($debug)) {
  499.                 if ($this->tblObj->isPopulated()) return $this->tblObj->getDBVal();
  500.             }
  501.         }
  502.  
  503.         $keyArr=array();
  504.         for ($i=0;$i strlen($keysFrom);$i++{
  505.             switch(substr($keysFrom,$i,1)) {
  506.                 case "G":
  507.                     if (is_array($_GET)) {
  508.                         foreach($_GET as $key => $val{
  509.                             $keyArr[$key]=$val;
  510.                         }
  511.                     }
  512.                     break;
  513.                 case "P":
  514.                     if (is_array($_POST)) {
  515.                         foreach($_POST as $key => $val{
  516.                             $keyArr[$key]=$val;
  517.                         }
  518.                     }
  519.                     break;
  520.                 case "C":
  521.                     if (is_array($_COOKIE)) {
  522.                         foreach($_COOKIE as $key => $val{
  523.                             $keyArr[$key]=$val;
  524.                         }
  525.                     }
  526.                     break;
  527.                 case "S":
  528.                     if (is_array($_SESSION)) {
  529.                         foreach($_SESSION as $key => $val{
  530.                             $keyArr[$key]=$val;
  531.                         }
  532.                     }
  533.                     break;
  534.                 case "A":
  535.                     if (is_array($_SERVER)) {
  536.                         foreach($_SERVER as $key => $val{
  537.                             $keyArr[$key]=$val;
  538.                         }
  539.                     }
  540.                     break;
  541.             }
  542.         }
  543.  
  544.  
  545.         if ($this->FRMMODE == FRM_MODE_NEW{
  546.             $this->pageFrmData=$this->pageFrmObj->getDefaultValArr();
  547.             foreach($keyArr as $key => $val{
  548.                 $this->pageFrmData[$key]=$val;
  549.             }
  550.             return $this->pageFrmData;
  551.  
  552.         else if (($this->FRMMODE == FRM_MODE_EDIT|| ($this->FRMMODE == FRM_MODE_DELETE)) {
  553.             /* <pk-04-12-20> */
  554.             if ($debugecho "<pre>".print_r($keyArr,True)."</pre>";
  555.  
  556.             $query="SELECT * ".$this->pageFrmObj->getFromStmt();
  557.             $frmKeys=$this->pageFrmObj->getKeyArray();
  558.             $sep=" WHERE ";
  559.             if (is_array($frmKeys)) {
  560.                 if ($debugecho "<p>\$frmKeys: </p><pre>".print_r($frmKeys,True)."</pre>";
  561.                 foreach($frmKeys as $frmK{
  562.                     if (isset($keyArr[$frmK['NAME']])) {
  563.                         $query.=$sep.$frmK['TABLE'].".".$frmK['NAME']." = ".$GLOBALS['USRDB']->qs_getSlashedValue($keyArr[$frmK['NAME']]);
  564.                         $sep=" AND ";
  565.                     }
  566.                 }
  567.             }
  568.             
  569.             if (!empty($this->FRMSELWHEREAND)) {
  570.                 $query=$sep.pcf_tmpl_parse($this->FRMSELWHEREAND,$this->getDBVal());
  571.                 $sep=" AND ";
  572.             }
  573.  
  574.             if ($debugecho "<p><hr />$query<hr /></p>";
  575.  
  576.             if ($this->pageFrmData=$GLOBALS['USRDB']->quickQuery($query)) {
  577.                 return $this->pageFrmData;
  578.             else {
  579.                 $this->pageFrmData=$this->pageFrmObj->getDefaultValArr();
  580.                 foreach($keyArr as $key => $val{
  581.                     $this->pageFrmData[$key]=$val;
  582.                 }
  583.                 $this->FRMMODE=FRM_MODE_NEW;
  584.                 return $this->pageFrmData;
  585.             }
  586.             /* </pk-04-12-20> */
  587.         }
  588.     }
  589.  
  590.  
  591.     /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
  592.     /*                                                                 */
  593.     /* _______________________ HEADER ________________________________ */
  594.     /*                                                                 */
  595.     /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
  596.  
  597.     /**
  598.       * returns the java tag
  599.       *
  600.       * @returns string
  601.       *
  602.       * @since pk-04-08-02
  603.       * @version pk-06-12-10
  604.       *
  605.       ***/
  606.     function getJavaHeaderTag($debug=False{
  607.         if ($debug{
  608.             echoDebugMethod(__FILE__,get_class($this),"CMS_FORM_PAGE::getJavaHeaderTag(...)");
  609.             echoDebug(__FILE__,"<blockquote style=\"font-size:90%\">");
  610.         }
  611.  
  612.         if (!$this->pageFrmObj$this->loadFrmObj();
  613.  
  614.         $tag=parent::getJavaHeaderTag($debug);
  615.  
  616.         if (!strstr($tag,$GLOBALS['PROJECT']['JAVASCRIPTURL']."window.js")) {
  617.             $tag .="\t<script language=\"JavaScript\" src=\"".$GLOBALS['PROJECT']['JAVASCRIPTURL']."window.js\" type=\"text/javascript\"></script>\n";
  618.         }
  619.         if (!strstr($tag,$GLOBALS['PROJECT']['JAVASCRIPTURL']."forms.js")) {
  620.             $tag .="\t<script language=\"JavaScript\" src=\"".$GLOBALS['PROJECT']['JAVASCRIPTURL']."forms.js\"  type=\"text/javascript\"></script>\n";
  621.         }
  622.  
  623.         if (pcf_is_instance_of($this->pageFrmObj,'DBMS_FORM')) // <pk-06-12-10>
  624.             $tag.=$this->pageFrmObj->getJavaCode($this->FRMMODE,False,$debug);
  625.         }
  626.         if ($debugechoDebug(__FILE__,"</blockquote>");
  627.         return $tag;
  628.     }
  629.  
  630.     /* _______________________ BODY _______________________________ */
  631.  
  632.     /**
  633.       * returns the html-code for the form
  634.       *
  635.       * @param boolean $debug 
  636.       *
  637.       * @return string (html)
  638.       *
  639.       * @version pk-04-12-21
  640.       * @version pk-05-10-20
  641.       * @version pk-07-02-16 handling of new
  642.       *
  643.       ***/
  644.     function getFormCode($debug=False{
  645.         if ($debugechoDebugMethod(__FILE__,get_class($this),"CMS_FORM_PAGE::getFormCode()");
  646.  
  647.         if (!$this->pageFrmObj$this->loadFrmObj($debug);
  648.  
  649.         if ($this->FRMMODE == FRM_MODE_LIST)
  650.         {
  651.             
  652.         else {
  653.             $o_controll=$this->pageFrmObj->getControllObj('OCSP_FRMCONTR_JQUERY',$debug);
  654.             
  655.             if ($this->FRMMODE==FRM_MODE_NEW)
  656.             {
  657.                 if (!empty($this->FRMDEFAULTVALUES)) {
  658.                     $arr_defaultVals=explode("\n",str_replace("\r","",$this->FRMDEFAULTVALUES));
  659.                     if (sizeof($arr_defaultVals)) {
  660.                         $arr_curRow=$o_controll->getCurrentRow();
  661.                         foreach($arr_defaultVals as $str_defVal)
  662.                         {
  663.                             if ($arr_keyVal=explode('=',$str_defVal,2))
  664.                             {
  665.                                 $arr_curRow[trim($arr_keyVal[0])]=trim($arr_keyVal[1]);
  666.                             }
  667.                         }                        
  668.                         $o_controll->setCurRow($arr_curRow);                        
  669.                     }
  670.                 }
  671.             }
  672.             
  673.             
  674.             $o_view=$this->pageFrmObj->getViewObj('OCSP_FRMVIEW_FORM',$debug);
  675.             return $o_view->getForm($this->FRMMODE,$debug);            
  676.         }
  677.         
  678.         
  679.         
  680.         
  681.         
  682.         
  683.         
  684. /*        
  685.         if ($this->FRMMODE==FRM_MODE_NEW) { // <pk-07-02-16>
  686.             ${$dataArrName}=$this->pageFrmObj->reloadCheck(NULL,$debug,$dataArrName);
  687.             if (!empty($this->FRMDEFAULTVALUES)) {
  688.                 $a_defaultValStr=explode("\n",str_replace("\r","",$this->FRMDEFAULTVALUES));
  689.                 if (sizeof($a_defaultValStr)) {
  690.                     foreach($a_defaultValStr as $s_defValStr) {
  691.                         if (strstr($s_defValStr,"=")) {
  692.                             $a_defValKV=explode("=",$s_defValStr,2);
  693.                             if (!empty($a_defValKV[0]) && !empty($a_defValKV[1])) {
  694.                                 ${$dataArrName}[$a_defValKV[0]]=trim($a_defValKV[1]);
  695.                             }
  696.                         }
  697.                     }
  698.                 }
  699.             }
  700.             if ($debug) echoDebug(__FILE__,"<div style=\"margin:10px;\"><p>NEW VALUES: ($dataArrName)</p> <pre>".print_r(${$dataArrName},True)."</pre></div>\n");
  701.         } else {
  702.             if (isset($_POST['DBMSFORMID']) && ($_POST['DBMSFORMID']==$this->pageFrmObj->getId())
  703.                 && isset($_POST[$this->getValArrName()]) && (is_array($_POST[$this->getValArrName()]))) { // <pk-06-07-31 /> E_ALL
  704.                 // form is reloaded
  705.                 // <pk-06-10-02 />
  706.                 ${$dataArrName}=$_POST[$this->getValArrName()];
  707.                 ${$dataArrName}=$this->pageFrmObj->reloadCheck(${$dataArrName},$debug,$this->getValArrName());
  708.                 // </pk-06-10-02 />
  709.             } else {
  710.                 ${$dataArrName}=$this->getPageFrmData(($this->FRMMODE == FRM_MODE_NEW),"GPS",$debug);
  711.             }
  712.             if ($debug) echo "<p>Array (".$this->getValArrName().")</p><pre>".print_r(${$this->getValArrName()},True)."</pre>";
  713.     
  714.             if (!empty($this->FRMACTION)) {
  715.                 $s_frmAction=$this->FRMACTION.$_SERVER['QUERY_STRING'];
  716.             } else {
  717.                 $s_frmAction=NULL;
  718.             }
  719.         }
  720.         
  721.         if (!empty($this->FRMNEXTURL)) {
  722.             $s_nextURI=pcf_tmpl_parse($this->FRMNEXTURL,${$dataArrName});
  723.         } else  if (intval($this->FRMNEXTPAGE)) {
  724.             // <pk-05-10-20>
  725.             $nextPage=new CMS_PAGE_V2(0,0,$this->FRMNEXTPAGE);
  726.             $s_nextURI=$nextPage->getMyLink();
  727.             // </pk-05-10-20>
  728.                     
  729.         } else {
  730.             $s_nextURI=NULL;
  731.         }
  732.         if (!empty($s_nextURI) &&  !empty($this->FRMNEXTURLGETTMPL)) {
  733.             $s_nextURI.=(strstr($s_nextURI,"?") ? "&" : "?").$this->FRMNEXTURLGETTMPL;
  734.         }   
  735.         if ($debug) echoDebug(__FILE__,"<div style=\"margin:10px;\"><p>next Link: $s_nextURI</p>\n");
  736.         
  737.         $this->pageFrmObj->FRMTBLTAG=$this->FRMTAGADD;
  738.  
  739.         return $this->pageFrmObj->getHTMLFormFromArray(${$dataArrName},$this->FRMMODE,$s_frmAction,$s_nextURI,$dataArrName,$debug);
  740.  
  741. */
  742.  
  743.     }
  744.  
  745.     /**
  746.       * returns the content of the page
  747.       *
  748.       * @param int $chaShowMode 
  749.       * @param boolean $debug 
  750.       *
  751.       * @global $OCSP_CONF 
  752.       *
  753.       * @return string (html)
  754.       * 
  755.       * @since pk-08-01-08
  756.       * @version pk-08-04-22
  757.       ***/
  758.     function getContent($chaShowMode=0,$debug=False
  759.     {
  760.         if ($debugechoDebugMethod(__FILE__,get_class($this),"CMS_FORM_PAGE::getContent($chaShowMode)");
  761.                            
  762.         if (($chaShowMode == 0))
  763.         {
  764.             if ($this->getContentCalled)
  765.             {
  766.                 throw new Exception('content called twice');
  767.             else {
  768.                 $this->getContentCalled True;
  769.             }
  770.         }        
  771.                 
  772.         if (($chaShowMode != CHAPTER_SHOWMODE_PROGRAMM&& ($chaShowMode != 0))
  773.         {
  774.             return parent::getContent($chaShowMode,$debug);        
  775.         else {            
  776.             $str_ret="";
  777.             if ($chaShowMode != CHAPTER_SHOWMODE_PROGRAMM)
  778.             {
  779.                 $str_ret .= $this->getContent(CHAPTER_SHOWMODE_ALLWAYS_TOP,$debug)
  780.             }
  781.             
  782.             // <pk-08-04-21>
  783.             $str_secReq serialize(array('USER' => OCSP_OBJ::currentUser()->getId()));
  784.             $str_onLoad "
  785.                 if (typeof(jOCSP) != 'undefined')
  786.                 {
  787.                     jOCSP.setSecReq('" OCSP_SESSION::getInstance()->encrypt($str_secReq"'); 
  788.                 }       
  789.                 ";        
  790.             $this->myHTMLPage->addBodyOnload($str_onLoad);
  791.             // <pk-08-04-21>
  792.             
  793.             ob_start();
  794.             $str_ret .= $this->getFormCode($debug);             
  795.             $this->pageIncludeOutput.=ob_get_contents();
  796.             ob_end_clean();                     
  797.             $str_ret.=$this->pageIncludeOutput;
  798.             
  799.             if ($chaShowMode != CHAPTER_SHOWMODE_PROGRAMM)
  800.             {
  801.                 $str_ret.=$this->getContent(CHAPTER_SHOWMODE_ALLWAYS_BOTTOM)
  802.             }            
  803.             
  804.             return $str_ret;            
  805.         }
  806.     }
  807. }
  808.  
  809. ?>

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