[Comoblog-commit] comoblog/admin/include modules.inc.php,1.2,1.3
Status: Inactive
Brought to you by:
markwallis
|
From: Mark W. \(a. serialmonkey\) <mar...@us...> - 2005-11-13 12:35:40
|
Update of /cvsroot/comoblog/comoblog/admin/include In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31904/admin/include Modified Files: modules.inc.php Log Message: CORE: Introduce a new module versioning framework to allow us to track module compatability during install and upgrade Index: modules.inc.php =================================================================== RCS file: /cvsroot/comoblog/comoblog/admin/include/modules.inc.php,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- modules.inc.php 2 Sep 2005 01:06:15 -0000 1.2 +++ modules.inc.php 13 Nov 2005 12:35:27 -0000 1.3 @@ -1,4 +1,15 @@ <?php +function is_module_certified ($mod_certified) { + $certified = explode("|", $mod_certified); + for ($c = 0; $c < count($certified); $c++) + { + if (intval(CFG_VERSION) == intval($certified[$c])) + return true; + } + + return false; +} + function module_install ($mod_name) { $install_file = CFG_BASE_PATH.'/modules/'.$mod_name.'/install/'.$mod_name.'.xml'; @@ -7,11 +18,20 @@ $xml = $xmlparse->GetXMLTree($install_file); $mod_name = trim($xml['MODULE'][0]['NAME'][0]['VALUE']); + $mod_version = trim($xml['MODULE'][0]['VERSION'][0]['VALUE']); + $mod_minimum_supported = trim($xml['MODULE'][0]['MINIMUM_SUPPORTED'][0]['VALUE']); $mod_description = trim($xml['MODULE'][0]['DESCRIPTION'][0]['VALUE']); $mod_info = trim($xml['MODULE'][0]['INFO'][0]['VALUE']); $mod_filter_posts = trim($xml['MODULE'][0]['FILTER_POSTS'][0]['VALUE']); $mod_filter_comments = trim($xml['MODULE'][0]['FILTER_COMMENTS'][0]['VALUE']); + if ($mod_minimum_supported != NULL && intval($mod_minimum_supported) > intval(CFG_VERSION)) + return "Module not supported on this version. Minimum supported version is ".$mod_minimum_supported; + + $certified = array(); + for ($c = 0; $c < count($xml['MODULE'][0]['CERTIFIED']); $c++) + $certified[$c] = trim($xml['MODULE'][0]['CERTIFIED'][$c]['VALUE']); + $allowed_pos = array(); for ($c = 0; $c < count($xml['MODULE'][0]['ALLOWED_POS']); $c++) $allowed_pos[$c] = trim($xml['MODULE'][0]['ALLOWED_POS'][$c]['VALUE']); @@ -63,15 +83,38 @@ // add module to ".CFG_MYSQL_TABPREFIX."modules table (inactive by default) $mod_allowed_pos = implode ('|', $allowed_pos); - $query = "insert into ".CFG_MYSQL_TABPREFIX."modules (mod_name,mod_description,mod_allowed_pos,mod_filter_posts,mod_filter_comments,mod_pos,mod_info) values ('".$mod_name."','".$mod_description."','".$mod_allowed_pos."','".$mod_filter_posts."','".$mod_filter_comments."','','".$mod_info."')"; + $mod_certified = implode ('|', $certified); + $query = "insert into ".CFG_MYSQL_TABPREFIX."modules ( + mod_name, + mod_version, + mod_minimum_supported, + mod_certified, + mod_description, + mod_allowed_pos, + mod_filter_posts, + mod_filter_comments, + mod_pos, + mod_info + ) + values ( + '".$mod_name."', + '".$mod_version."', + '".$mod_minimum_supported."', + '".$mod_certified."', + '".$mod_description."', + '".$mod_allowed_pos."', + '".$mod_filter_posts."', + '".$mod_filter_comments."', + '', + '".$mod_info."')"; $res = mysql_query($query); if ($res) { - $mod_id = mysql_insert_id(); - return ($mod_id); - } - else return (false); + } + else { + return (mysql_error()); + } } |