aboutsummaryrefslogtreecommitdiffstats
path: root/Zotlabs/Module/Admin/Dbsync.php
blob: 305126c7d27412505251ec935de38fbc24fb5eaa (plain) (blame)
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
<?php

namespace Zotlabs\Module\Admin;



class Dbsync {
	



	function get() {
		$o = '';
	
		if(argc() > 3 && intval(argv(3)) && argv(2) === 'mark') {
			set_config('database', 'update_r' . intval(argv(3)), 'success');
			if(intval(get_config('system','db_version')) <= intval(argv(3)))
				set_config('system','db_version',intval(argv(3)) + 1);
			info( t('Update has been marked successful') . EOL);
			goaway(z_root() . '/admin/dbsync');
		}
	
		if(argc() > 2 && intval(argv(2))) {
			require_once('install/update.php');
			$func = 'update_r' . intval(argv(2));
			if(function_exists($func)) {
				$retval = $func();
				if($retval === UPDATE_FAILED) {
					$o .= sprintf( t('Executing %s failed. Check system logs.'), $func); 
				}
				elseif($retval === UPDATE_SUCCESS) {
					$o .= sprintf( t('Update %s was successfully applied.'), $func);
					set_config('database',$func, 'success');
				}
				else
					$o .= sprintf( t('Update %s did not return a status. Unknown if it succeeded.'), $func);
			}
			else
				$o .= sprintf( t('Update function %s could not be found.'), $func);
	
			return $o;
		}
	
		$failed = array();
		$r = q("select * from config where `cat` = 'database' ");
		if(count($r)) {
			foreach($r as $rr) {
				$upd = intval(substr($rr['k'],8));
				if($rr['v'] === 'success')
					continue;
				$failed[] = $upd;
			}
		}
		if(! count($failed))
			return '<div class="generic-content-wrapper-styled"><h3>' . t('No failed updates.') . '</h3></div>';
	
		$o = replace_macros(get_markup_template('failed_updates.tpl'),array(
			'$base' => z_root(),
			'$banner' => t('Failed Updates'),
			'$desc' => '',
			'$mark' => t('Mark success (if update was manually applied)'),
			'$apply' => t('Attempt to execute this update step automatically'),
			'$failed' => $failed
		));
	
		return $o;
	}
}