Source for file CLI_PROFILE_LISTFORM_PAGE.phpclass

Documentation is available at CLI_PROFILE_LISTFORM_PAGE.phpclass

  1. <?php
  2. /**
  3.   * Class file CLI_PROFILE_LISTFORM_PAGE.phpclass
  4.   *
  5.   * @project    Open CSP-Management
  6.   * @package    client
  7.   *
  8.   * @author     Peter Krebs <p.krebs@wpus.at>
  9.   * @license    http://opensource.org/licenses/gpl-license.php GNU Public License
  10.   * 
  11.   * @version $Id: CLI_PROFILE_LISTFORM_PAGE.phpclass,v 1.3 2008/12/12 17:35:14 pitlinz Exp $
  12.   */
  13.  
  14.     require_once __OCSP_DEFAULTCONFPATH__ "cms.conf.phpinc";
  15.     require_once __OCSP_DEFAULTCONFPATH__ "client.conf.phpinc";
  16.  
  17.     pcf_require_class('CMS_LISTFORM_PAGE',"cms/page/");
  18.     pcf_require_class('CLI_PROFILE',"client/");
  19.  
  20. /**
  21.   * class CLI_PROFILE_LISTFORM_PAGE
  22.   *
  23.   * @project    Open CSP-Management
  24.   * @package    cmclient
  25.   *
  26.   * @author     Peter Krebs <p.krebs@wpus.at>
  27.   * @license    http://opensource.org/licenses/gpl-license.php GNU Public License
  28.   *
  29.   * @since      pk-06-10-18
  30.   * @version $Id: CLI_PROFILE_LISTFORM_PAGE.phpclass,v 1.3 2008/12/12 17:35:14 pitlinz Exp $
  31.   */
  32. {
  33.     // ---------------------------------------------------------------------------
  34.     // constants
  35.     // ---------------------------------------------------------------------------
  36.  
  37.     /**
  38.      * @constant string CLASS_SRC_FILE
  39.      */
  40.     const CLASS_SRC_FILE = __FILE__;    
  41.     
  42.     // ---------------------------------------------------------------------------
  43.     // class (static)
  44.     // ---------------------------------------------------------------------------
  45.     
  46.     /*** class vars ------------------------------------------------------ */
  47.      
  48.     /*** class methods --------------------------------------------------- */
  49.     
  50.     // ---------------------------------------------------------------------------
  51.     // object vars
  52.     // ---------------------------------------------------------------------------
  53.     
  54.     /*** compostion --------------------------------------------------- */
  55.     
  56.     /*** attributes  -------------------------------------------------- */
  57.     
  58.     /**
  59.      * the profile id
  60.      *
  61.      * @var int 
  62.      */
  63.     protected $MYPROFILEID = 0;
  64.     
  65.     // ---------------------------------------------------------------------------
  66.     // factory / construct
  67.     // ---------------------------------------------------------------------------
  68.     
  69.     // ---------------------------------------------------------------------------
  70.     // getter / setter
  71.     // ---------------------------------------------------------------------------
  72.     
  73.     /**
  74.       * returns a array of variables used by the page object
  75.       *
  76.       * array[varName]=array(
  77.       *     [TYPE]          datatype
  78.       *     [FLDCLASS]      name of DBMS_FIELD* class
  79.       *     [CLASSVALS]     array of values of [FLDCLASS]
  80.       *
  81.       *
  82.       *
  83.       * @returns array
  84.       *
  85.       * @since pk-04-08-10
  86.       * @version pk-05-01-14
  87.       *
  88.       */
  89.     function getObjVarDef({
  90.                
  91.         $retArr=parent::getObjVarDef();
  92.  
  93.         unset($retArr['MYFORM']);
  94.         unset($retArr['FRMMODE']);
  95.         $this->FRMMODE=FRM_MODE_LIST;
  96.         unset($retArr['FRMACTION']);
  97.         unset($retArr['FRMTAGADD']);
  98.         unset($retArr['FRMCANCELCMD']);
  99.         unset($retArr['FRMNEXTPAGE']);
  100.  
  101.         unset($retArr['MYFORMOBJHAEDLINE']);
  102.         unset($retArr['FRMOBJECTINC']);
  103.         unset($retArr['FRMOBJECTCLASS']);
  104.  
  105.         unset($retArr['FRMPKCOLS']);
  106.         unset($retArr['FRMSELGROUP1']);
  107.         unset($retArr['FRMSELGROUP2']);
  108.         unset($retArr['FRMTITLEGROUP1']);
  109.         unset($retArr['FRMTITLEGROUP2']);
  110.  
  111.         $str_dbmsFldPath __OCSP_PHPINCPATH__ "db" _OCSP_DIRSEP_ "frmClasses" _OCSP_DIRSEP_
  112.         
  113.         if (!class_exists(DBMS_FIELD_FOREIGNKEY))
  114.         {
  115.             require_once  $str_dbmsFldPath "DBMS_FIELD_FOREIGNKEY.phpclass";
  116.         }
  117.         $retArr['MYPROFILEID'array(
  118.             'TYPE'      => "int",
  119.             'FLDCLASS'  => "DBMS_FIELD_FOREIGNKEY",
  120.             'CLASSVALS' => array(
  121.                 'label'             => "Profil",
  122.                 'allowNull'         => False,
  123.                 'showInList'        => False,
  124.                 'toolTip'           => "Profil",
  125.                 'toolTipAsTitle'    => True,
  126.                 'reloadFormOnChange'=> 2,
  127.                 'lookupTable'       => "T_CLI_PROFILES",
  128.                 'lookupField'       => "CLP_ID",
  129.                 'lookupShowField'   => "CONCAT(CLP_TITLE,' (ID: ',CLP_ID,')')",
  130.                 'lookupWhere'       => "(PROJ_ID=".intval($this->getProjId())." OR PROJ_ID=0)",
  131.                 'lookupSort'        => "PROJ_ID DESC,CLP_SORTORDER,CLP_TITLE",
  132.                 'showNullOption'    => False
  133.             )
  134.         );
  135.  
  136.         $retArr['FRMLSTWHERE']['CLASSVALS']['label']="Profil Filter";
  137.         $retArr['FRMLSTWHERE']['CLASSVALS']['toolTip']="Abfrage Filter für das Profil (Kunden/Mitarbeiter/Benutzer)";
  138.  
  139.         $i_pfId=(isset($this->MYPROFILEIDintval($this->MYPROFILEID0);
  140.         if ((isset($_POST['FRMARRAYNAME'])) && (isset($_POST[$_POST['FRMARRAYNAME']]['MYPROFILEID']))) {
  141.             $i_pfId=(intval($_POST[$_POST['FRMARRAYNAME']]['MYPROFILEID']intval($_POST[$_POST['FRMARRAYNAME']]['MYPROFILEID']$i_pfId);
  142.         }
  143.  
  144.         $retArr['MYFORM']['CLASSVALS']['formTable']="";
  145.         if (intval($i_pfId)) {
  146.             $s_query="SELECT CLP_TABLE FROM T_CLI_PROFILES WHERE CLP_ID=".intval($i_pfId);
  147.             if ($s_pfTbl=OCSP_OBJ::defaultReadDBObj()->quickQuery($s_query,0)) {
  148.                 $retArr['MYFORM']['CLASSVALS']['formTable']=$s_pfTbl;
  149.             }
  150.         }
  151.         return $retArr;
  152.     }
  153.  
  154.  
  155.  
  156.     // ---------------------------------------------------------------------------
  157.     //                     profile methods
  158.     // ---------------------------------------------------------------------------
  159.  
  160.     /**
  161.      * returns the profile
  162.      *
  163.      * @param boolean $debug 
  164.      * 
  165.      * @return CLI_PROFILE 
  166.      */
  167.     public function &getMyProfile($debug)
  168.     {
  169.         return CLI_PROFILE::getInstance($this->MYPROFILEID);
  170.     }
  171.     
  172.     
  173.     /**
  174.       * loads the form object
  175.       *
  176.       * @param booelean $debug 
  177.       * 
  178.       * @global array $OCSP_CONF 
  179.       *
  180.       * @return OCSP_FORM 
  181.       *
  182.       * @version pk-07-01-11
  183.       * @version pk-08-10-02
  184.       * 
  185.       */
  186.     function loadFrmObj($debug=False
  187.     {
  188.         if ($debugechoDebugMethod(__FILE__,get_class($this),"CLI_PROFILE_LISTFORM::loadFrmObj");
  189.  
  190.         if ($obj_profile $this->getMyProfile($debug))
  191.         {
  192.             return ($this->pageFrmObj $obj_profile->getEntryForm());
  193.         else {
  194.             return False;
  195.         }
  196.     }
  197.     
  198.     
  199.     /**
  200.       * returns an array with key fields (only the colname) not the object
  201.       *
  202.       * @param boolean $debug 
  203.       *
  204.       * @returns array
  205.       *
  206.       ***/
  207.     function getFormKeyColNames($debug=FALSE){
  208.         if ($debugechoDebugMethod(__FILE__,get_class($this),"CLI_PROFILE_LISTFORM_PAGE::getFormKeyColNames");
  209.         return array('CLP_IDX');
  210.     }
  211.  
  212.  
  213.     /* _______________________ BODY _______________________________ */
  214.  
  215.     /**
  216.       * do formcmds and return the propriate html-code
  217.       *
  218.       * @param boolean $debug 
  219.       *
  220.       * @returns string
  221.       *
  222.       * @since pk-06-01-24
  223.       * @version pk-06-09-26
  224.       *
  225.       ***/
  226.     function getFormCode($debug{
  227.         if ($debugechoDebug(__FILE__,"<p><b>CMS_LISTFORM_PAGE::getFormCode()</b> (".get_class($this).")</p>",0);
  228.  
  229.         if (!$this->pageFrmObj$this->loadFrmObj()// load the form
  230.  
  231.         if (is_object($this->pageFrmObj&& (intval($this->pageFrmObj->getId()))) {
  232.             // we have a valid form
  233.             switch($_GET['FRMCMD_'.$this->pageFrmObj->getId()]{
  234.                 case "NEW"// <pk-06-09-26 />
  235.                     return $this->getSingleRowFormCode(FRM_MODE_NEW,$debug);
  236.                 case "EDIT":
  237.                     return $this->getSingleRowFormCode(FRM_MODE_EDIT,$debug);
  238.                 case "DELETE":
  239.                     return $this->getSingleRowFormCode(FRM_MODE_DELETE,$debug);
  240.                 case "COPY":
  241.                     return $this->getSingleRowFormCode(FRM_MODE_COPY,$debug);
  242.                 default:
  243.                     return $this->getFormListCode($debug);
  244.             }
  245.  
  246.         else {
  247.             // we do not have a form
  248.             return "<p>FORMULAR konnte nicht nicht geladen werden</p>";
  249.         }
  250.     }
  251.  
  252.     /**
  253.       * returns the html-code for the form in edit mode
  254.       * if no autoinc field is in $_GET the list is returned
  255.       *
  256.       * @param boolean $debug 
  257.       *
  258.       * @returns string
  259.       *
  260.       ***/
  261.     function getSingleRowFormCode($mode=FRM_MODE_READONLY,$debug=FALSE{
  262.         if ($debugechoDebug(__FILE__,"<p><b>CMS_LISTFORM_PAGE::getEditCode()</b> (".get_class($this).")</p>",0);
  263.         if (!$this->pageFrmObj$this->loadFrmObj()// load the forms
  264.  
  265.         $a_pkFlds=$this->getFormKeyColNames();
  266.         if (sizeof($a_pkFlds)) {
  267.             // assamble the where clause
  268.             $s_where=" WHERE ";$s_and="";
  269.             foreach($a_pkFlds as $s_colName{
  270.                 if (intval($_GET[$s_colName])) {
  271.                     $s_where.=$s_and.$s_colName."=".intval($_GET[$s_colName]);
  272.                     $s_and=" AND ";
  273.                 }
  274.             }
  275.             if (empty($s_and)) {
  276.                 // no key set -> no where -> no sense to edit
  277.                 $s_ret ="<p>Formular konnte nicht bearbeitet werden, da es keine Key �bergeben wurde.</p>";
  278.                 $s_ret.=$this->getFormListCode($debug);
  279.             }
  280.  
  281.             $s_query="SELECT * ".$this->pageFrmObj->getFromStmt().$s_where;
  282.             $s_dataArrName="DBVAL_".$this->pageFrmObj->getId();
  283.             global ${$s_dataArrName};
  284.             if (!($a_dataRow=$GLOBALS['USRDB']->quickQuery($s_query))) {
  285.                 $s_ret ="<p>Formular konnte nicht bearbeitet werden, da es keine Datensatz gefunden wurde.</p>";
  286.                 $s_ret.=$this->getFormListCode($debug);
  287.             }
  288.  
  289.             $s_nxtUrl=pcf_HTML_changeURI_GetValue($_SERVER['REQUEST_URI'],'FRMCMD_'.$this->pageFrmObj->getId(),"");
  290.             $s_nxtUrl=pcf_HTML_changeURI_GetValue($s_nxtUrl,'rldFRM',"");
  291.             ${$s_dataArrName}=$this->pageFrmObj->reloadCheck($a_dataRow,$debug,$s_dataArrName);
  292.             return $this->pageFrmObj->getHTMLFormFromArray(${$s_dataArrName},$mode,NULL,$s_nxtUrl,$s_dataArrName,$debug);
  293.  
  294.         else {
  295.             $s_ret ="<p>Formular konnte nicht bearbeitet werden, da es keine Autowert Felder hat.</p>";
  296.             $s_ret.=$this->getFormListCode($debug);
  297.         }
  298.  
  299.     }
  300.  
  301.     /**
  302.       * returns the html-code for the form in list mode
  303.       *
  304.       * @param boolean $debug 
  305.       *
  306.       * @returns string
  307.       *
  308.       * @version pk-04-12-21
  309.       * @version pk-05-10-07
  310.       *
  311.       * @var string $s_ret 
  312.       * @var array $a_tmp 
  313.       * @var string $s_query 
  314.       * @var string $s_fldName 
  315.       * @var array $a_whereValues 
  316.       * @var string $s_selGrpWhere 
  317.       *
  318.       * @version pk-08-12-12
  319.       */
  320.     function getFormListCode($debug=False
  321.     {
  322.         if ($debugechoDebugMethod(__FILE__,get_class($this),"CLI_PROFILE_LISTFORM_PAGE::getFormListCode()");
  323.  
  324.         if ($obj_profile $this->getMyProfile($debug))
  325.         {
  326.             if ($obj_profile->isMultiple())
  327.             {
  328.                 $obj_form $obj_profile->getEntryForm(FRM_MODE_LIST);
  329.                 
  330.             else {
  331.                 return Null;
  332.             }
  333.         }
  334.         
  335.     }
  336.  
  337.  
  338. }
  339.  
  340. ?>

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