aboutsummaryrefslogtreecommitdiff
path: root/engine/lib/version.php
blob: fabbf80f49f96cbf6b5fe6ac354e6350d19b937e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
<?php

	/**
	 * Elgg version library.
	 * Contains code for handling versioning and upgrades.
	 * 
	 * @package Elgg
	 * @subpackage Core
	 * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
	 * @copyright Curverider Ltd 2008
	 * @link http://elgg.org/
	 */

	/**
	 * Get the current version information
	 *
	 * @param true|false $humanreadable Whether to return a human readable version (default: false)
	 * @return string|false Depending on success
	 */
		function get_version($humanreadable = false) {
			
			global $CONFIG;
			if (@include($CONFIG->path . "version.php")) {
				if (!$humanreadable) return $version;
				return $release;
			}
			
			return false;
			
		}
		
	/**
	 * Determines whether or not the database needs to be upgraded.
	 *
	 * @return true|false Depending on whether or not the db version matches the code version
	 */
		function version_upgrade_check() {
			
			$dbversion = (int) datalist_get('version');
			$version = get_version();
			
			if ($version > $dbversion) {
				return true;
			}
			return false;
			
		}
		
	/**
	 * Upgrades Elgg
	 *
	 */
		function version_upgrade() {
			
			$dbversion = (int) datalist_get('version');
			db_upgrade($dbversion);
			datalist_set('version', get_version());
			system_message(elgg_echo('upgrade:db'));
			forward();
			exit;
			
		}
		
	/**
	 * Runs an upgrade check on boot.
	 *
	 */
		function version_boot() {
			
			if (!is_installed()) return false;
			
			if (version_upgrade_check()) {
				version_upgrade();
			}
			
		}
		
	// Register the boot handler for version
		register_elgg_event_handler("boot","system","version_boot");

?>