]> git.mxchange.org Git - friendica.git/blob - src/Module/Admin/DBSync.php
Remove duplicate $baseurl template variable
[friendica.git] / src / Module / Admin / DBSync.php
1 <?php\r
2 \r
3 namespace Friendica\Module\Admin;\r
4 \r
5 use Friendica\Core\Config;\r
6 use Friendica\Core\L10n;\r
7 use Friendica\Core\Renderer;\r
8 use Friendica\Core\Update;\r
9 use Friendica\Database\DBA;\r
10 use Friendica\Database\DBStructure;\r
11 use Friendica\Module\BaseAdminModule;\r
12 \r
13 class DBSync extends BaseAdminModule\r
14 {\r
15         public static function content()\r
16         {\r
17                 parent::content();\r
18 \r
19                 $a = self::getApp();\r
20 \r
21                 $o = '';\r
22 \r
23                 if ($a->argc > 3 && $a->argv[2] === 'mark') {\r
24                         // @TODO: Replace with parameter from router\r
25                         $update = intval($a->argv[3]);\r
26                         if ($update) {\r
27                                 Config::set('database', 'update_' . $update, 'success');\r
28                                 $curr = Config::get('system', 'build');\r
29                                 if (intval($curr) == $update) {\r
30                                         Config::set('system', 'build', intval($curr) + 1);\r
31                                 }\r
32                                 info(L10n::t('Update has been marked successful') . EOL);\r
33                         }\r
34                         $a->internalRedirect('admin/dbsync');\r
35                 }\r
36 \r
37                 if ($a->argc > 2) {\r
38                         if ($a->argv[2] === 'check') {\r
39                                 $retval = DBStructure::update($a->getBasePath(), false, true);\r
40                                 if ($retval === '') {\r
41                                         $o .= L10n::t("Database structure update %s was successfully applied.", DB_UPDATE_VERSION) . "<br />";\r
42                                         Config::set('database', 'last_successful_update', DB_UPDATE_VERSION);\r
43                                         Config::set('database', 'last_successful_update_time', time());\r
44                                 } else {\r
45                                         $o .= L10n::t("Executing of database structure update %s failed with error: %s", DB_UPDATE_VERSION, $retval) . "<br />";\r
46                                 }\r
47                                 if ($a->argv[2] === 'check') {\r
48                                         return $o;\r
49                                 }\r
50                         } elseif (intval($a->argv[2])) {\r
51                                 require_once 'update.php';\r
52 \r
53                                 // @TODO: Replace with parameter from router\r
54                                 $update = intval($a->argv[2]);\r
55 \r
56                                 $func = 'update_' . $update;\r
57 \r
58                                 if (function_exists($func)) {\r
59                                         $retval = $func();\r
60 \r
61                                         if ($retval === Update::FAILED) {\r
62                                                 $o .= L10n::t("Executing %s failed with error: %s", $func, $retval);\r
63                                         } elseif ($retval === Update::SUCCESS) {\r
64                                                 $o .= L10n::t('Update %s was successfully applied.', $func);\r
65                                                 Config::set('database', $func, 'success');\r
66                                         } else {\r
67                                                 $o .= L10n::t('Update %s did not return a status. Unknown if it succeeded.', $func);\r
68                                         }\r
69                                 } else {\r
70                                         $o .= L10n::t('There was no additional update function %s that needed to be called.', $func) . "<br />";\r
71                                         Config::set('database', $func, 'success');\r
72                                 }\r
73 \r
74                                 return $o;\r
75                         }\r
76                 }\r
77 \r
78                 $failed = [];\r
79                 $configStmt = DBA::select('config', ['k', 'v'], ['cat' => 'database']);\r
80                 while ($config = DBA::fetch($configStmt)) {\r
81                         $upd = intval(substr($config['k'], 7));\r
82                         if ($upd >= 1139 && $config['v'] != 'success') {\r
83                                 $failed[] = $upd;\r
84                         }\r
85                 }\r
86 \r
87                 if (!count($failed)) {\r
88                         $o = Renderer::replaceMacros(Renderer::getMarkupTemplate('admin/dbsync/structure_check.tpl'), [\r
89                                 '$base' => $a->getBaseURL(true),\r
90                                 '$banner' => L10n::t('No failed updates.'),\r
91                                 '$check' => L10n::t('Check database structure'),\r
92                         ]);\r
93                 } else {\r
94                         $o = Renderer::replaceMacros(Renderer::getMarkupTemplate('admin/dbsync/failed_updates.tpl'), [\r
95                                 '$base' => $a->getBaseURL(true),\r
96                                 '$banner' => L10n::t('Failed Updates'),\r
97                                 '$desc' => L10n::t('This does not include updates prior to 1139, which did not return a status.'),\r
98                                 '$mark' => L10n::t("Mark success \x28if update was manually applied\x29"),\r
99                                 '$apply' => L10n::t('Attempt to execute this update step automatically'),\r
100                                 '$failed' => $failed\r
101                         ]);\r
102                 }\r
103 \r
104                 return $o;\r
105         }\r
106 }\r