tangra logo
   
[ class tree: tangra_lib ] [ index: tangra_lib ] [ all elements ]
 

Source for file tangra_module_release_param_dbc.class.php

Documentation is available at tangra_module_release_param_dbc.class.php

  1. <?php
  2.  
  3. // $Id$
  4.  
  5. /**
  6.  * Contains class Tangra_Module_Release_Param_DBC
  7.  *
  8.  * @package  tangra_lib
  9.  * @subpackage  modules_manager
  10.  */
  11.  
  12. /**
  13.  *
  14.  */
  15. require_once(TANGRA_MAIN_DIR.'interfaces/i_db_storable.class.php');
  16.  
  17. /**
  18.  *
  19.  */
  20. require_once('tangra_module_release_param.class.php');
  21.  
  22. /**
  23.  * Tangra_Module_Release_Param_DBC
  24.  *
  25.  * @package  tangra_lib
  26.  * @subpackage  modules_manager
  27.  */
  28.     /**
  29.      * Saves the record
  30.      *
  31.      * @param DB_Connection $dbc 
  32.      * @return integer On success returns module ID, on failure - false
  33.      */
  34.     public function save(DB_Connection $dbc{
  35.         $ret false;
  36.  
  37.         if ($this->get_id()) {
  38.             $ret $this->update($dbc);
  39.         else {
  40.             $ret $this->insert($dbc);
  41.             $this->set_id($ret);
  42.  
  43.         }
  44.  
  45.         return $ret;
  46.     }
  47.  
  48.  
  49.     /**
  50.      * Loads record by id
  51.      *
  52.      * @param DB_Connection $dbc 
  53.      * @param integer $id 
  54.      * @return integer On success returns module ID, on failure - false
  55.      */
  56.     public function load_by_id(DB_Connection $dbc$id{
  57.         $ret false;
  58.  
  59.  
  60.         $sql "select type, ".
  61.                         "module_release, ".
  62.                         "name, ".
  63.                         "description, ".
  64.                         "default_value ".
  65.                     "from tmod_release_params ".
  66.                     "where id = $id";
  67.         $rez $dbc->execute($sql);
  68.  
  69.         if (!$rez->is_eof()) {
  70.             $rez_obj $rez->fetch_object();
  71.  
  72.             $this->set_id($id);
  73.             $this->set_type($rez_obj->TYPE);
  74.             $this->set_module_release($rez_obj->MODULE_RELEASE);
  75.             $this->set_name(stripslashes($rez_obj->NAME));
  76.             $this->set_description(stripslashes($rez_obj->DESCRIPTION));
  77.             $this->set_default_value(stripslashes($rez_obj->DEFAULT_VALUE));
  78.  
  79.             $ret $id;
  80.         }
  81.  
  82.         return $ret;
  83.     }
  84.  
  85.  
  86.     /**
  87.      * Inserts new DB record
  88.      *
  89.      * @param DB_Connection $dbc 
  90.      * @return integer On success returns module ID, on failure - false
  91.      * @internal
  92.      */
  93.     protected function insert(DB_Connection $dbc{
  94.         $ret false;
  95.  
  96.         $id $dbc->generate_id('tmod_release_params_seq');
  97.  
  98.         $type $this->get_type();
  99.         $module_release $this->get_module_release();
  100.         $name addslashes($this->get_name());
  101.         $description addslashes($this->get_description());
  102.         $default_value addslashes($this->get_default_value());
  103.  
  104.         if ($id{
  105.             $sql "insert into tmod_release_params (id, ".
  106.                                             "type, ".
  107.                                             "module_release, ".
  108.                                             "name, ".
  109.                                             "description, ".
  110.                                             "default_value ".
  111.                                           ") ".
  112.                                 "values ".
  113.                                           "($id,".
  114.                                           "$type".
  115.                                           "$module_release".
  116.                                           "'$name', ".
  117.                                           "'$description', ".
  118.                                           "'$default_value".
  119.                                           ")";
  120.             $dbc->execute($sql);
  121.             $ret $id;
  122.         else {
  123.             throw new TE_Exception('ID not generated - tmod_release_params_seq');
  124.         }
  125.  
  126.         return $ret;
  127.     }
  128.  
  129.  
  130.     /**
  131.      * Updates existing DB record
  132.      *
  133.      * @param DB_Connection $dbc 
  134.      * @return integer On success returns module ID, on failure - false
  135.      * @internal
  136.      */
  137.     protected function update(DB_Connection $dbc{
  138.         $id $this->get_id();
  139.  
  140.         $type $this->get_type();
  141.         $module_release $this->get_module_release();
  142.         $name addslashes($this->get_name());
  143.         $description addslashes($this->get_description());
  144.         $default_value addslashes($this->get_default_value());
  145.  
  146.         $sql "update tmod_release_params set ".
  147.                                   "type = $type".
  148.                                   "module_release = $module_release".
  149.                                   "name = '$name', ".
  150.                                   "description = '$description', ".
  151.                                   "default_value = '$default_value".
  152.                     "where id = ".$id;
  153.  
  154.         $dbc->execute($sql);
  155.         $ret $id;
  156.  
  157.  
  158.         return $ret;
  159.     }
  160.  
  161.  
  162.     /**
  163.      * Gets SQL for grid
  164.      *
  165.      * @param integer $mod_rel_id Release ID
  166.      * @return string SQL statement
  167.      */
  168.     public static function get_sql_for_grid($mod_rel_id{
  169.         tangra_if_not_int_throw_e($mod_rel_id);
  170.  
  171.         $sql "select rp.id, ".
  172.                         "rp.name, ".
  173.                         "t.name, ".
  174.                         "rp.default_value, ".
  175.                         "rp.description ".
  176.                     "from tmod_release_params rp, ".
  177.                             "tmod_release_param_types t ".
  178.                     "where rp.module_release = $mod_rel_id and rp.type = t.id ".
  179.                     "order by rp.type asc";
  180.  
  181.         return $sql;
  182.     }
  183.  
  184.  
  185.     /**
  186.      * Gets count SQL for grid
  187.      *
  188.      * @param integer $mod_rel_id Release ID
  189.      * @return string SQL statement
  190.      */
  191.     public static function get_sql_count_for_grid($mod_rel_id{
  192.         tangra_if_not_int_throw_e($mod_rel_id);
  193.  
  194.         $sql "select count(id) as total_rows from tmod_release_params where module_release = $mod_rel_id";
  195.  
  196.         return $sql;
  197.     }
  198.  
  199.  
  200.     /**
  201.      * Loads options-labels map for form_field_select
  202.      *
  203.      * @param DB_Connection $dbc 
  204.      * @return array 
  205.      */
  206.     public static function load_types_ol_map(DB_Connection $dbc{
  207.         $sql "select id, name from tmod_release_param_types order by id asc";
  208.         $rez $dbc->execute($sql);
  209.  
  210.         $ret array();
  211.         $ids array();
  212.  
  213.         while($rez_obj $rez->fetch_object()) {
  214.             array_push($ids$rez_obj->ID);
  215.             $ret['ol_map'][$rez_obj->ID$rez_obj->NAME;
  216.         }
  217.  
  218.         if ($ids{
  219.             $ret['ids'$ids;
  220.         }
  221.  
  222.         return $ret;
  223.     }
  224.  
  225.  
  226.     /**
  227.      * Loads all parameters for type for release
  228.      *
  229.      * @param DB_Connection $dbc 
  230.      * @param integer $module_release_id Release ID
  231.      * @param integer $type_id Type ID
  232.      * @return array 
  233.      */
  234.     public static function load_all_for_type(DB_Connection $dbc$module_release_id$type_id{
  235.         tangra_if_not_int_throw_e($module_release_id);
  236.         tangra_if_not_int_throw_e($type_id);
  237.  
  238.         $sql "select id from tmod_release_params where module_release = $module_release_id and type = $type_id order by name asc";
  239.         $rez $dbc->execute($sql);
  240.         $ret array();
  241.         while ($rez_obj $rez->fetch_object()) {
  242.             $tmp new Tangra_Module_Release_Param_DBC();
  243.             $tmp->load_by_id($dbc$rez_obj->ID);
  244.             $ret[clone $tmp;
  245.         }
  246.  
  247.         return $ret;
  248.     }
  249.  
  250.  
  251.     /**
  252.      * Deletes record
  253.      *
  254.      * @param DB_Connection $dbc 
  255.      * @param integer $param_id Parameter ID
  256.      */
  257.     public static function delete(DB_Connection $dbc$param_id{
  258.         tangra_if_not_int_throw_e($param_id);
  259.  
  260.         $sql "delete from tmod_release_params where id = $param_id";
  261.         $dbc->execute($sql);
  262.     }
  263.  
  264.  
  265.     /**
  266.      * Deletes all parameters for release
  267.      *
  268.      * @param DB_Connection $dbc 
  269.      * @param integer $module_release_id Release ID
  270.      */
  271.     public static function delete_for_release(DB_Connection $dbc$module_release_id{
  272.         tangra_if_not_int_throw_e($module_release_id);
  273.  
  274.         $sql "delete from tmod_release_params where module_release = $module_release_id";
  275.         $dbc->execute($sql);
  276.     }
  277.  
  278.  
  279.     /**
  280.      * Copyes parameters from one release to other
  281.      *
  282.      * @param DB_Connection $dbc 
  283.      * @param integer $from_id Source release ID
  284.      * @param integer $to_id Target release ID
  285.      */
  286.     public static function copy_parameters(DB_Connection $dbc$from_id$to_id{
  287.         tangra_if_not_int_throw_e($from_id);
  288.         tangra_if_not_int_throw_e($to_id);
  289.  
  290.         $sql "select id from tmod_release_params where module_release = $from_id";
  291.         $rez $dbc->execute($sql);
  292.         while ($rez_obj $rez->fetch_object()) {
  293.             $tmp_from new Tangra_Module_Release_Param_DBC();
  294.             $tmp_from->load_by_id($dbc$rez_obj->ID);
  295.             $tmp_from->set_id(0);
  296.             $tmp_from->set_module_release($to_id);
  297.             $tmp_from->save($dbc);
  298.         }
  299.     }
  300. }