[Comoblog-commit] comoblog/admin/include modules.inc.php,1.3,1.4
Status: Inactive
Brought to you by:
markwallis
|
From: Mark W. \(a. serialmonkey\) <mar...@us...> - 2005-11-18 08:24:59
|
Update of /cvsroot/comoblog/comoblog/admin/include In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv991/admin/include Modified Files: modules.inc.php Log Message: 1327274 - Updating with existing modules fails Index: modules.inc.php =================================================================== RCS file: /cvsroot/comoblog/comoblog/admin/include/modules.inc.php,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- modules.inc.php 13 Nov 2005 12:35:27 -0000 1.3 +++ modules.inc.php 18 Nov 2005 08:24:51 -0000 1.4 @@ -1,5 +1,9 @@ <?php -function is_module_certified ($mod_certified) { +function is_module_certified ($mod_name) { + $query = "select mod_certified from ".CFG_MYSQL_TABPREFIX."modules where mod_name = '".$mod_name."'"; + $res = mysql_query($query); + $mod_certified = mysql_result($res, 0, 'mod_certified'); + $certified = explode("|", $mod_certified); for ($c = 0; $c < count($certified); $c++) { @@ -10,6 +14,36 @@ return false; } +function compare_module_version ($mod_name) { + $install_file = CFG_BASE_PATH.'/modules/'.$mod_name.'/install/'.$mod_name.'.xml'; + + $new_mod_version = intval(get_module_version_from_xml($install_file)); + + $query = "select mod_version from ".CFG_MYSQL_TABPREFIX."modules where mod_name = '".$mod_name."'"; + $res = mysql_query($query); + + if (mysql_numrows($res) == 0) + return 0; + + $old_mod_version = intval(mysql_result($res, 0, 'mod_version')); + + if ($new_mod_version > $old_mod_version) + return 1; + else if ($new_mod_version < $old_mod_version) + return -1; + else + return 0; +} + +function get_module_version_from_xml ($xml) +{ + $xmlparse = &new ParseXML; + $xml = $xmlparse->GetXMLTree($xml); + + return trim($xml['MODULE'][0]['VERSION'][0]['VALUE']); +} + + function module_install ($mod_name) { $install_file = CFG_BASE_PATH.'/modules/'.$mod_name.'/install/'.$mod_name.'.xml'; @@ -109,11 +143,26 @@ '".$mod_info."')"; $res = mysql_query($query); - if ($res) { - return (false); - } + if ($res) + return false; else { - return (mysql_error()); + $query = "update ".CFG_MYSQL_TABPREFIX."modules set + mod_version='".$mod_version."', + mod_minimum_supported='".$mod_minimum_supported."', + mod_certified='".$mod_certified."', + mod_description='".$mod_description."', + mod_allowed_pos='".$mod_allowed_pos."', + mod_filter_posts='".$mod_filter_posts."', + mod_filter_comments='".$mod_filter_comments."', + mod_info='".$mod_info."' + where (mod_name='".$mod_name."')"; + + $res = mysql_query($query); + + if ($res) + return false; + else + return (mysql_error()); } } @@ -212,7 +261,11 @@ - +function module_deactivate_by_name ($mod_name) { + $query = "select mod_id from ".CFG_MYSQL_TABPREFIX."modules m where m.mod_name = '".$mod_name."'"; + $res = mysql_query($query); + module_deactivate(mysql_result($res,0,0)); +} function module_deactivate ($mod_id) { return (module_set_pos ($mod_id, '')); |