Source for file DBMS_FIELD_PRO_AUDIENCE.phpclass

Documentation is available at DBMS_FIELD_PRO_AUDIENCE.phpclass

  1. <?php
  2. /**
  3.   * Class file DBMS_FIELD_PRO_AUDIENCE.phpclass
  4.   *
  5.   * @project    Open CSP-Management
  6.   * @package    dbms_field
  7.   * @category   any
  8.   *
  9.   * @author     Peter Krebs <p.krebs@lvus.at>
  10.   * @copyright  &copy; 2002-2005 by Peter Krebs and Landesverlag Unternehmensservice
  11.   * @license    http://opensource.org/licenses/gpl-license.php GNU Public License
  12.   *
  13.   ***/
  14.  
  15. if (empty($GLOBALS['OCSP']['PHPFORMPATH'])) $GLOBALS['OCSP']['PHPFORMPATH']=dirname(__FILE__)."/";
  16.  
  17. if (!class_exists("DBMS_FIELD_DBLOOKUPSELECTLIST")) {
  18.     require_once dirname(__FILE__)."/DBMS_FIELD_DBLOOKUPSELECTLIST.phpclass";
  19. }
  20.  
  21. /**
  22.   * Class DBMS_FIELD_PRO_AUDIENCE
  23.   *
  24.   * handels audience (T_AUDIENCE) select fields
  25.   *
  26.   *
  27.   *
  28.   * @project    Open CSP-Management
  29.   * @package    dbms_field
  30.   * @category   any
  31.   *
  32.   * @author     Peter Krebs <p.krebs@wpus.at>
  33.   * @copyright  &copy; 2002-2005 by Peter Krebs and Landesverlag Unternehmensservice
  34.   * @copyright  &copy; 2005-2006 by Peter Krebs and WURM & Partner Unternehmensservice
  35.   * @license    http://opensource.org/licenses/gpl-license.php GNU Public License
  36.   *
  37.   * @since pk-06-02-10
  38.   *
  39.   ***/
  40.  
  41.     // ###########################################################
  42.     // OBJECT (CONST) VAR DECLARATION
  43.     // ###########################################################
  44.  
  45.     /**
  46.       * overwrite variables:
  47.       **/
  48.  
  49.      var $className         ="AudienceList";
  50.      var $lookupTable       ="T_AUDIENCE";
  51.      var $lookupShowField   ="AUD_NAME";
  52.      var $lookupField       ="AUD_ID";
  53.      var $classSrcFile      =__FILE__;
  54.      var $mySeperator       =",";
  55.  
  56.     // ###########################################################
  57.     // OBJECT SETTINGS METHODS
  58.     // ###########################################################
  59.  
  60.     /**
  61.       * echos the filed definition form
  62.       *
  63.       * @param boolean $showSize 
  64.       * @param boolean $showDBFields 
  65.       *
  66.       ***/
  67.      function editTblForm($showSize=FALSE,$showDBFields=FALSE{
  68.         parent::editTblForm($showSize,$showDBFields);
  69.     }
  70.  
  71.     /**
  72.       * save the filed definition form
  73.       *
  74.       * @returns boolean
  75.       *
  76.       ***/
  77.     function save({
  78.         $ret=parent::save();
  79.         $this->allowAddValues   =(intval($_POST['allowAddValues']TRUE FALSE );
  80.         $this->popUp_frmId      =(intval($_POST['popUp_frmId']));
  81.         $this->popUp_width      =(intval($_POST['popUp_width']));
  82.         $this->popUp_height     =(intval($_POST['popUp_height']));
  83.         $this->allowEditValues  =(intval($_POST['allowEditValues']TRUE FALSE );
  84.  
  85.         // fixed values
  86.         $this->lookupTable      = "T_AUDIENCE";
  87.         $this->lookupField      = "AUD_ID";
  88.         $this->lookupShowField  = "AUD_NAME";
  89.         $this->lookupWhere      = "";
  90.         $this->mySeperator=",";
  91.         return $ret;
  92.     }
  93.  
  94.     // ###########################################################
  95.     // OBJECT DATA METHODS
  96.     // ###########################################################
  97.  
  98.  
  99.     // ###########################################################
  100.     // OBJECT HTML FORM METHODS
  101.     // ###########################################################
  102.  
  103.     /**
  104.       * return a javascript code sequence to popup a input or edit dialog
  105.       *
  106.       * if $selName isset this is used instead of $this->myName
  107.       *
  108.       * if $mode is different from FRM_MODE_NEW the popup must get
  109.       * the value through javascript
  110.       *
  111.       * see $GLOBALS['OCSP']['SYSTEMURL']."forms/popup_form.php" for details
  112.       *
  113.       * if !empty $setMethod popup_form.php calls this method after adding
  114.       * the option instead of selecting the option
  115.       *
  116.       * @param int $mode 
  117.       * @param string $selName since 06-02-10 (name of the select element
  118.       * @param string $setMethod 
  119.       * @param boolean $debug 
  120.       *
  121.       * @returns string
  122.       *
  123.       * @since pk-06-02-06
  124.       *
  125.       ***/
  126.     function getPopupLinkJs($mode=FRM_MODE_NEW,$selName="",$setMethod="",$debug=FALSE{
  127.         if ($debugecho "<p><b>DBMS_FIELD_DBLOOKUPSELECTLIST::getPopupLinkJs(...)</b> (".get_class($this)."/".$this->myName.")</p>";
  128.  
  129.         $s_url=$GLOBALS['OCSP']['SYSTEMURL']."forms/popup_form.php?";
  130.         $a_args['FRMID']    =$this->popUp_frmId;
  131.         $a_args['FRMMODE']  =$mode;
  132.         $a_args['FRMNAME']  =$this->getMyFormName();
  133.         $a_args['ARRNAME']  =$this->myDataArrName;
  134.         $a_args['ARRFLD']   =$this->myName;
  135.         $a_args['SELFLD']   =(empty($selName$this->myName : $selName);
  136.         $a_args['SETMETHOD']=$setMethod;
  137.         $a_args['SHOWFIELD']=$this->lookupShowField;
  138.         $a_args['KEYFIELD'=$this->lookupField;
  139.         $a_args['TABLE']    =$this->lookupTable;
  140.  
  141.         require_once $GLOBALS['PHPINCPATH']."common/pcf_md5.phpinc";
  142.         $s_url.="ARGS=".urlencode(pcfmd5_encrypt(serialize($a_args)));
  143.  
  144.         if ($this->reloadFormOnChange$url.="&OPENERRELOAD=1";
  145.  
  146.         $s_jCmd ="var url_".$this->myName."='".$s_url."';\n";
  147.         $s_jCmd.="var opt_".$this->myName."='width=".$this->popUp_width.",height=".$this->popUp_height.",toolbar=no,location=no,status=yes,menubar=no,scrollbars=yes,resizable=yes';\n";
  148.         $s_jCmd.="hWnd_".$this->myName."=window.open(url_".$this->myName.",'".$this->myName."', opt_".$this->myName.");\n";
  149.         $s_jCmd.="hWnd_".$this->myName.".focus();\n";
  150.  
  151.         if ($debugecho "<blockquote><pre>".htmlspecialchars($s_jCmd)."</pre></blockquote>";
  152.  
  153.         return $s_jCmd;
  154.  
  155.     }
  156.  
  157.     /**
  158.       * returns the html option list of all elements in $aValArr
  159.       *
  160.       * @param array $aValArr 
  161.       * @param boolean $debug 
  162.       *
  163.       * @returns string
  164.       *
  165.       * @version pk-06-04-29 no empty values in list
  166.       *
  167.       ***/
  168.     function getOptionListIn($aValArr,$debug=FALSE{
  169.         if ($debugechoDebugMethod(__FILE__,get_class($this),"DBMS_FIELD_PRO_AUDIENCE::getOptionListIn()","",0);
  170.  
  171.         $s_ret="";
  172.         if (is_array($aValArr)) {
  173.             foreach($aValArr as $m_key{
  174.                 if (!empty($m_key)) // <pk-06-04-29 />
  175.                     $s_ret.="\t<option value=\"".$m_key."\">".htmlspecialchars($this->getDBValue($m_key,$debug))."</option>\n";
  176.                 }
  177.             }
  178.         }
  179.  
  180.         return $s_ret;
  181.     }
  182.  
  183.     /**
  184.       * returns the html option list of all elements in $aValArr
  185.       *
  186.       * @param array $aValArr 
  187.       * @param boolean $debug 
  188.       *
  189.       * @returns string
  190.       *
  191.       * @version pk-06-04-29 no empty values in list
  192.       *
  193.       ***/
  194.     function getOptionListOut($aValArr,$debug=FALSE{
  195.         if ($debugechoDebugMethod(__FILE__,get_class($this),"DBMS_FIELD_PRO_AUDIENCE::getOptionListIn()","",0);
  196.  
  197.         $this->setMyValues($arrName="DBVAL",$debug=FALSE);
  198.  
  199.         $s_ret="";
  200.         $a_allValues=$this->myValues;
  201.         if (is_array($a_allValues)) {
  202.             if (is_array($aValArr)) {
  203.                 foreach($aValArr as $m_key{
  204.                     // remove selected form list
  205.                     unset($a_allValues[$m_key]);
  206.                 }
  207.             }
  208.             foreach($a_allValues as $m_key => $s_label{
  209.                 if (!empty($m_key)) // <pk-06-04-29 />
  210.                     $s_ret.="\t<option value=\"".$m_key."\">".htmlspecialchars($s_label)."</option>\n";
  211.                 }
  212.             }
  213.         }
  214.  
  215.         return $s_ret;
  216.     }
  217.  
  218.  
  219.     /**
  220.       * returns the html code for the select
  221.       *
  222.       * @param string $aValue 
  223.       * @param array $arrName 
  224.       * @param boolean $debug 
  225.       *
  226.       * @returns string
  227.       *
  228.       * @version pk-05-12-01
  229.       * @version pk-06-02-06 popUp_frmId
  230.       * @version pk-06-04-29 layout
  231.       *
  232.       ***/
  233.     function getInputTag($aValue,$arrName="DBVAL",$debug=FALSE{
  234.         global ${$arrName};
  235.         if ($debugechoDebugMethod(__FILE__,get_class($this)."DBMS_FIELD_PRO_AUDIENCE::getInputTag()","",0);
  236.  
  237.         $this->setMyValues($arrName,$debug);
  238.  
  239.         if (is_array($aValue)) {
  240.             $s_valStr=implode($this->mySeperator,$aValue);
  241.             $a_valArr=$aValue;
  242.         else {
  243.             $s_valStr=$aValue;
  244.             $a_valArr=explode($this->mySeperator,$aValue);
  245.         }
  246.         if (!is_array($a_valArr)) {
  247.             // set empty array to avoid errors
  248.             $a_valArr=array();
  249.         }
  250.  
  251.  
  252.  
  253.         $ret ="<input type=\"hidden\" name=\"".$arrName."[".$this->myName."]\" value=\"$s_valStr\">";
  254.  
  255.         $s_eNamePart=$arrName."[".$this->myName;
  256.         $ret.="
  257.                 <script language=\"javascript\" type=\"text/javascript\">
  258.                 <!--
  259.                     function sel_".$arrName."_".$this->myName."_addAll() {
  260.                         frmObj=getFormByName('".$this->getMyFormName()."');
  261.                         elemOut=findElement(frmObj,'".$s_eNamePart."_outList]');
  262.                         elemIn =findElement(frmObj,'".$s_eNamePart."_inList]');
  263.                         if ((elemOut) && (elemIn)) {
  264.                             var i=0;
  265.                             while(i < elemOut.length) { // copy the fields from Out to In
  266.                                 nOpt_".$arrName."_".$this->myName."(elemOut[i].value,elemOut[i].text);
  267.                                 elemIn[elemIn.length]=new Option(elemOut[i].text,elemOut[i].value,false,false);
  268.                                 i++;
  269.                             }
  270.                             while(elemOut.length) elemOut[0]=null; // clear Out
  271.                         }
  272.                     }
  273.  
  274.                     function sel_".$arrName."_".$this->myName."_add() {
  275.                         frmObj=getFormByName('".$this->getMyFormName()."');
  276.                         elemOut=findElement(frmObj,'".$s_eNamePart."_outList]');
  277.                         elemIn =findElement(frmObj,'".$s_eNamePart."_inList]');
  278.                         if ((elemOut) && (elemIn) && (elemOut.selectedIndex)) {
  279.                             // alert(elemOut[elemOut.selectedIndex].value+'::'+elemOut[elemOut.selectedIndex].text);
  280.                             nOpt_".$arrName."_".$this->myName."(elemOut[elemOut.selectedIndex].value,elemOut[elemOut.selectedIndex].text);
  281.                             elemIn[elemIn.length]=new Option(elemOut[elemOut.selectedIndex].text,elemOut[elemOut.selectedIndex].value,false,false);
  282.                             elemOut[elemOut.selectedIndex]=null;
  283.                         }
  284.                     }
  285.  
  286.                     function sel_".$arrName."_".$this->myName."_remove() {
  287.                         frmObj=getFormByName('".$this->getMyFormName()."');
  288.                         elemOut=findElement(frmObj,'".$s_eNamePart."_outList]');
  289.                         elemIn =findElement(frmObj,'".$s_eNamePart."_inList]');
  290.                         if ((elemOut) && (elemIn) && (elemIn.selectedIndex)) {
  291.                             // alert(elemIn[elemIn.selectedIndex].value+'::'+elemIn[elemIn.selectedIndex].text);
  292.                             elemOut[elemOut.length]=new Option(elemIn[elemIn.selectedIndex].text,elemIn[elemIn.selectedIndex].value,false,false);
  293.                             elemIn[elemIn.selectedIndex]=null;
  294.                             sel_".$arrName."_".$this->myName."_updateHidden()
  295.                         }
  296.                     }
  297.  
  298.                     function sel_".$arrName."_".$this->myName."_removeAll() {
  299.                         frmObj=getFormByName('".$this->getMyFormName()."');
  300.                         elemOut=findElement(frmObj,'".$s_eNamePart."_outList]');
  301.                         elemIn =findElement(frmObj,'".$s_eNamePart."_inList]');
  302.                         if ((elemOut) && (elemIn)) {
  303.                             var i=0;
  304.                             while(i < elemIn.length) {
  305.                                 elemOut[elemOut.length]=new Option(elemIn[i].text,elemIn[i].value,false,false);
  306.                                 i++;
  307.                             }
  308.                             i=0;
  309.                             while(i < elemOut.length) elemOut[i++]=null; // clear Out
  310.                             setElemValByName(frmObj,'".$s_eNamePart."]','');
  311.                         }
  312.                     }
  313.  
  314.                     function sel_".$arrName."_".$this->myName."_updateHidden() {
  315.                         frmObj=getFormByName('".$this->getMyFormName()."');
  316.                         elemIn =findElement(frmObj,'".$s_eNamePart."_inList]');
  317.                         elemVal=findElement(frmObj,'".$s_eNamePart."]');
  318.  
  319.                         var i=0;
  320.                         var sep='';
  321.                         var values='';
  322.                         while(i < elemIn.length) {
  323.                             values=values+sep+elemIn[i++].value;
  324.                             sep=',';
  325.                         }
  326.                         setElemValByName(frmObj,'".$s_eNamePart."]',values);
  327.                     }
  328.  
  329.                     function nOpt_".$arrName."_".$this->myName."(key,label) {
  330.                         frmObj=getFormByName('".$this->getMyFormName()."');
  331.                         if (elem=findElement(frmObj,'".$s_eNamePart."]')) {
  332.                             if (elem.value != '') {
  333.                                 elem.value=elem.value+','+key;
  334.                             } else {
  335.                                 elem.value=key;
  336.                             }
  337.                         }
  338.                     }
  339.  
  340.  
  341.  
  342.                 //-->
  343.                 </script>
  344.             ";
  345.         $ret.="<table border=\"0\" class=\"frmSelInOut\">"// <pk-06-04-29 /> align=center removed
  346.         $ret.="<tr><td width=\"45%\" align=\"center\">gew&auml;hlt</td><td width=\"10%\"><td width=\"45%\" align=\"center\">verf&uuml;gbar</td></tr>";
  347.         $ret.="<tr>";
  348.         $ret.="<td width=\"45%\" align=\"center\">";
  349.         $ret.="<select name=\"".$arrName."[".$this->myName."_inList]\" size=\"".intval($this->selectsize)."\">\n";
  350.         $ret.=$this->getOptionListIn($a_valArr,$debug);;
  351.         $ret.="</select>\n";
  352.  
  353.         $ret.="</td>";
  354.         $ret.="<td valign=\"middle\" width=\"10%\" align=\"center\">";
  355.  
  356.         $ret.="<a href=\"javascript:{sel_".$arrName."_".$this->myName."_addAll()}\">\n";
  357.         $ret.="\t\t<img src=\"".$GLOBALS['PROJECT']['SYSIMGURL']."icons-16x16/2leftarrow.gif\" border=\"0\" alt=\"alle Eif&uuml;gen\" align=\"middle\" class=\"button\"></a><br />";
  358.         $ret.="<a href=\"javascript:{sel_".$arrName."_".$this->myName."_add()}\">\n";
  359.         $ret.="\t\t<img src=\"".$GLOBALS['PROJECT']['SYSIMGURL']."icons-16x16/1leftarrow.gif\" border=\"0\" alt=\"gew&auml;hlte Eif&uuml;gen\" align=\"middle\" class=\"button\"></a><br />";
  360.         $ret.="<a href=\"javascript:{sel_".$arrName."_".$this->myName."_remove()}\">\n";
  361.         $ret.="\t\t<img src=\"".$GLOBALS['PROJECT']['SYSIMGURL']."icons-16x16/1rightarrow.gif\" border=\"0\" alt=\"gew&auml;hlte Entfernen\" align=\"middle\" class=\"button\"></a><br />";
  362.         $ret.="<a href=\"javascript:{sel_".$arrName."_".$this->myName."_removeAll()}\">\n";
  363.         $ret.="\t\t<img src=\"".$GLOBALS['PROJECT']['SYSIMGURL']."icons-16x16/2rightarrow.gif\" border=\"0\" alt=\"alle Entfernen\" align=\"middle\" class=\"button\"></a><br />";
  364.  
  365.  
  366.         if (($this->allowAddValues&& (intval($this->popUp_frmId))) // <pk-06-02-06>
  367.             $ret.="<!--\n\t\t _______ ADD VALUES BUTTON _______ \n";
  368.             $ret.="\t\t--> <a name=\"".$this->getMyFormName()."_".$this->myName."\" href=\"javascript:{";
  369.             $ret.=$this->getPopupLinkJs(FRM_MODE_NEW,$this->myName."_inList","nOpt_".$arrName."_".$this->myName,$debug);
  370.             $ret.="}\n";
  371.             $ret.="\t\t \"><img src=\"".$GLOBALS['PROJECT']['SYSIMGURL']."icons-16x16/filenew.gif\" border=\"0\" alt=\"neuer Eintrag\" align=\"middle\" class=\"button\">";
  372.             $ret.="</a><!--\n";
  373.             $ret.="\t\t _______ ADD VALUES BUTTON _______ \n-->";
  374.         }
  375.  
  376.         $ret.="</td>";
  377.  
  378.         $ret.="<td width=\"45%\" align=\"center\">";
  379.         $ret.="<select name=\"".$arrName."[".$this->myName."_outList]\" size=\"".intval($this->selectsize)."\" >\n";
  380.         $ret.=$this->getOptionListOut($a_valArr,$debug);;
  381.         $ret.="</select>\n";
  382.  
  383.         $ret.="</td>";
  384.         $ret.="</tr></table>";
  385.  
  386.         return $ret;
  387.     }
  388.  
  389.     // ###########################################################
  390.     // SEARCH FORM METHODS
  391.     // ###########################################################
  392.  
  393.     // ###########################################################
  394.     // OBJECT HTML FORM METHODS
  395.     // ###########################################################
  396.  
  397.     // ###########################################################
  398.     // OBJECT VALUE CHECK/RETURN METHODS
  399.     // ###########################################################
  400.  
  401.  
  402. // end class DBMS_FIELD_PRO_AUDIENCE
  403. ?>

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