appConfig = \OCP\Server::get(AppConfig::class); } public function register(IRegistrationContext $context): void { require_once __DIR__ . "/../../vendor/autoload.php"; // Set the leeway for the JWT library in case the system clock is a second off \Firebase\JWT\JWT::$leeway = $this->appConfig->getJwtLeeway(); $context->registerEventListener(FileCreatedFromTemplateEvent::class, CreateFromTemplateListener::class); $context->registerEventListener(LoadAdditionalScriptsEvent::class, FilesListener::class); $context->registerEventListener(RegisterDirectEditorEvent::class, DirectEditorListener::class); $context->registerEventListener(LoadViewer::class, ViewerListener::class); $context->registerEventListener(AddContentSecurityPolicyEvent::class, ContentSecurityPolicyListener::class); $context->registerEventListener(BeforeTemplateRenderedEvent::class, FileSharingListener::class); $context->registerEventListener(HttpBeforeTemplateRenderedEvent::class, WidgetListener::class); $context->registerEventListener(DocumentUnsavedEvent::class, DocumentUnsavedListener::class); if (interface_exists("OCP\Files\Template\ICustomTemplateProvider")) { $context->registerTemplateProvider(TemplateProvider::class); } $container = $this->getContainer(); $previewManager = $container->query(IPreview::class); $previewManager->registerProvider(Preview::getMimeTypeRegex(), function () use ($container) { return $container->query(Preview::class); }); $detector = $container->query(IMimeTypeDetector::class); $detector->getAllMappings(); $checkBackgroundJobs = new JobListController( $container->query("AppName"), $container->query("Request"), $this->appConfig, $container->query(IJobList::class) ); $checkBackgroundJobs->checkAllJobs(); Hooks::connectHooks(); } public function boot(IBootContext $context): void { $context->injectFn(function (IManager $notificationsManager) { $notificationsManager->registerNotifierService(Notifier::class); }); if (class_exists("OCP\Files\Template\TemplateFileCreator")) { $context->injectFn(function (ITemplateManager $templateManager, IL10N $trans, $appName) { if (!empty($this->appConfig->getDocumentServerUrl()) && $this->appConfig->settingsAreSuccessful() && $this->appConfig->isUserAllowedToUse()) { $templateManager->registerTemplateFileCreator(function () use ($appName, $trans) { $wordTemplate = new TemplateFileCreator($appName, $trans->t("New document"), ".docx"); $wordTemplate->addMimetype("application/vnd.openxmlformats-officedocument.wordprocessingml.document"); $wordTemplate->setIconClass("icon-onlyoffice-new-docx"); $wordTemplate->setRatio(21/29.7); return $wordTemplate; }); $templateManager->registerTemplateFileCreator(function () use ($appName, $trans) { $cellTemplate = new TemplateFileCreator($appName, $trans->t("New spreadsheet"), ".xlsx"); $cellTemplate->addMimetype("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); $cellTemplate->setIconClass("icon-onlyoffice-new-xlsx"); $cellTemplate->setRatio(21/29.7); return $cellTemplate; }); $templateManager->registerTemplateFileCreator(function () use ($appName, $trans) { $slideTemplate = new TemplateFileCreator($appName, $trans->t("New presentation"), ".pptx"); $slideTemplate->addMimetype("application/vnd.openxmlformats-officedocument.presentationml.presentation"); $slideTemplate->setIconClass("icon-onlyoffice-new-pptx"); $slideTemplate->setRatio(16/9); return $slideTemplate; }); } }); } } }