loadData(); } catch (Exception $ex) { $this->vars['error'] = $ex->getMessage(); } return $this->makePartial('widget'); } public function defineProperties() { return [ 'title' => [ 'title' => 'backend::lang.dashboard.widget_title_label', 'default' => 'backend::lang.dashboard.status.widget_title_default', 'type' => 'string', 'validationPattern' => '^.+$', 'validationMessage' => 'backend::lang.dashboard.widget_title_error', ] ]; } protected function loadData() { $manager = UpdateManager::instance(); $this->vars['canUpdate'] = BackendAuth::getUser()->hasAccess('system.manage_updates'); $this->vars['updates'] = $manager->check(); $this->vars['warnings'] = $this->getSystemWarnings(); $this->vars['coreBuild'] = Parameter::get('system::core.build'); $this->vars['eventLog'] = EventLog::count(); $this->vars['eventLogMsg'] = LogSetting::get('log_events', false) ? false : true; $this->vars['requestLog'] = RequestLog::count(); $this->vars['requestLogMsg'] = LogSetting::get('log_requests', false) ? false : true; $this->vars['appBirthday'] = Parameter::get('system::app.birthday'); } public function onLoadWarningsForm() { $this->vars['warnings'] = $this->getSystemWarnings(); return $this->makePartial('warnings_form'); } protected function getSystemWarnings() { $warnings = []; $missingDependencies = PluginManager::instance()->findMissingDependencies(); $writablePaths = [ temp_path(), storage_path(), storage_path('app'), storage_path('logs'), storage_path('framework'), storage_path('cms'), storage_path('cms/cache'), storage_path('cms/twig'), storage_path('cms/combiner'), ]; if (in_array('Cms', Config::get('cms.loadModules', []))) { $writablePaths[] = themes_path(); } if (Config::get('app.debug', true)) { $warnings[] = Lang::get('backend::lang.warnings.debug'); } if (Config::get('develop.decompileBackendAssets', false)) { $warnings[] = Lang::get('backend::lang.warnings.decompileBackendAssets'); } if ( BackendAuth::getUser()->hasAccess('backend.manage_users') && User::where('login', 'admin')->orWhere('email', 'admin@domain.tld')->count() ) { $warnings[] = Lang::get('backend::lang.warnings.default_backend_user'); } $requiredExtensions = [ 'GD' => extension_loaded('gd'), 'fileinfo' => extension_loaded('fileinfo'), 'Zip' => class_exists('ZipArchive'), 'cURL' => function_exists('curl_init') && defined('CURLOPT_FOLLOWLOCATION'), 'OpenSSL' => function_exists('openssl_random_pseudo_bytes'), ]; foreach ($writablePaths as $path) { if (!is_writable($path)) { $warnings[] = Lang::get('backend::lang.warnings.permissions', ['name' => ''.$path.'']); } } foreach ($requiredExtensions as $extension => $installed) { if (!$installed) { $warnings[] = Lang::get('backend::lang.warnings.extension', ['name' => ''.$extension.'']); } } foreach ($missingDependencies as $pluginCode => $plugin) { foreach ($plugin as $missingPluginCode) { $warnings[] = Lang::get('system::lang.updates.update_warnings_plugin_missing', [ 'code' => '' . $missingPluginCode . '', 'parent_code' => '' . $pluginCode . '' ]); } } return $warnings; } }