Source for file tangra_module_release_dbc.class.php
Documentation is available at tangra_module_release_dbc.class.php
* Contains class Tangra_Module_Release_DBC
* @subpackage modules_manager
require_once(TANGRA_MAIN_DIR. 'interfaces/i_db_storable.class.php');
require_once('tangra_module_release.class.php');
* Tangra module release DBC
* @subpackage modules_manager
* @param DB_Connection $dbc
* @return integer On success returns module ID, on failure - false
public function save(DB_Connection $dbc) {
* @param DB_Connection $dbc
* @return integer On success returns module ID, on failure - false
public function load_by_id(DB_Connection $dbc, $id) {
$sql = "select module, ".
"requires_tangra_lib_version, ".
"requires_php_version, ".
$rez = $dbc->execute($sql);
$rez_obj = $rez->fetch_object();
* @param DB_Connection $dbc
* @return integer On success returns module ID, on failure - false
protected function insert(DB_Connection $dbc) {
$id = $dbc->generate_id('tmod_releases_seq');
$sql = "insert into tmod_releases (id, ".
"requires_tangra_lib_version, ".
"requires_php_version, ".
"'$requires_tangra_lib_version', ".
"'$requires_php_version', ".
throw new TE_Exception('ID not generated - tmod_releases_seq');
* @param DB_Connection $dbc
* @return integer On success returns module ID, on failure - false
protected function update(DB_Connection $dbc) {
$sql = "update tmod_releases set ".
"version = '$version', ".
"description = '$description', ".
"maintainer = '$maintainer', ".
"requires_tangra_lib_version = '$requires_tangra_lib_version', ".
"requires_php_version = '$requires_php_version', ".
"release_date = '$release_date', ".
* @return string SQL statement
$sql = "select id, version from tmod_releases order by version desc";
* Gets count SQL for grid
* @return string SQL statement
$sql = "select count(id) as total_rows from tmod_releases";
* Checks if it is unique version
* @param DB_Connection $dbc
* @param integer $module_id Module ID
* @param integer $id ID of current release
public static function is_unique_version(DB_Connection $dbc, $version, $module_id, $id = 0) {
$sql = "select id from tmod_releases where module = $module_id and version = '$version' and id <> $id";
$rez = $dbc->execute($sql);
* Loads all releases for module
* @param DB_Connection $dbc
* @param integer $module Module ID
* @return array Array of Tangra_Module_Release_DBC objects
$sql = "select id from tmod_releases where module = $module order by id desc";
$rez = $dbc->execute($sql);
while ($rez_obj = $rez->fetch_object()) {
$tmp->load_by_id($dbc, $rez_obj->ID);
* Loads all online releases for module
* @param DB_Connection $dbc
* @param integer $module Module ID
* @return array Array of Tangra_Module_Release_DBC objects
$sql = "select id from tmod_releases where module = $module and online = 1 order by id desc";
$rez = $dbc->execute($sql);
while ($rez_obj = $rez->fetch_object()) {
$tmp->load_by_id($dbc, $rez_obj->ID);
* Loads previos online release
* @param DB_Connection $dbc
* @param integer $current_release_id Current release ID
* @param integer $module_id Module ID
* @return Tangra_Module_Release_DBC On success return object of type Tangra_Module_Release_DBC, on failure - false
$sql = "select id from tmod_releases where module = $module_id and id < $current_release_id order by id desc";
$rez = $dbc->execute($sql);
$rez_obj = $rez->fetch_object();
$ret->load_by_id($dbc, $rez_obj->ID);
* @param DB_Connection $dbc
* @param integer $release_id ID of the release record
public static function delete(DB_Connection $dbc, $release_id) {
$sql = "delete from tmod_releases where id = $release_id";
// TODO - following to be removed (?)
// public static function load_last_online_release(DB_Connection $dbc, $module_id) {
// $sql = "select id from tmod_releases where module = $module_id order by id desc";
// $rez = $dbc->execute($sql);
// if (!$rez->is_eod()) {
// $rez_obj = $rez->fetch_object();
// $ret = new Tangra_Module_Release_DBC();
// $ret->load_by_id($dbc, $rez_obj->ID);
* Loads highest online release for module
* @param DB_Connection $dbc
* @param integer $module_id Module ID
* @return Tangra_Module_Release_DBC On success return object of type Tangra_Module_Release_DBC, on failure - false
$sql = "select id, version from tmod_releases where module = $module_id order by id desc";
$rez = $dbc->execute($sql);
while($rez_obj = $rez->fetch_object()) {
$versions[$rez_obj->VERSION] = $rez_obj->ID;
if (count($versions) > 1) {
uasort($versions, 'version_compare');
$ret->load_by_id($dbc, current($sorted_desc));
$ret->load_by_id($dbc, current($versions));
* Loads release by module ID and version
* @param DB_Connection $dbc
* @param integer $module_id Module ID
* @param string $version Version literal
* @return Tangra_Module_Release_DBC On success returns object of type Tangra_Module_Release_DBC, on failure - false
$sql = "select id from tmod_releases where module = $module_id and version = '$version'";
$rez = $dbc->execute($sql);
$rez_obj = $rez->fetch_object();
* Loads release by module HID and version
* @param DB_Connection $dbc
* @param string $module_hid Module HID
* @param string $version Version literal
* @return Tangra_Module_Release_DBC On success returns object of type Tangra_Module_Release_DBC, on failure - false
$sql = "select id from tmods where hid = '$module_hid'";
$rez = $dbc->execute($sql);
$rez_obj = $rez->fetch_object();
* Loads hids for all releases
* @param DB_Connection $dbc
$sql = "select tmods.hid as hid, tmod_releases.version as version from tmods, tmod_releases where tmod_releases.module = tmods.id";
$rez = $dbc->execute($sql);
while ($rez_obj = $rez->fetch_object()) {
$ret[$rez_obj->HID. '-'. $rez_obj->VERSION] = false;
$sql = "select tmod_releases.id, tmods.hid from tmod_releases, tmods where tmod_releases.online = 1 and tmod_releases.module = tmods.id order by id desc";
$rez = $dbc->execute($sql);
while (($rez_obj = $rez->fetch_object()) && $c < $count) {
$tmp->load_by_id($dbc, $rez_obj->ID);
$ret[$c]['rel'] = clone $tmp;
$ret[$c]['mod'] = $rez_obj->HID;
|