appConfig = 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->registerMiddleware(DesktopMiddleware::class, true); $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(DocumentUnsavedEvent::class, DocumentUnsavedListener::class); $context->registerEventListener(NodeDeletedEvent::class, FileListener::class); $context->registerEventListener(NodeWrittenEvent::class, FileListener::class); $context->registerEventListener(ShareDeletedEvent::class, ShareListener::class); $context->registerEventListener(UserDeletedEvent::class, UserListener::class); $context->registerEventListener(VersionRestoredEvent::class, FileVersionsListener::class); $context->registerEventListener(MailMergeEndedEvent::class, MailMergeEndedListener::class); if (interface_exists(\OCP\Files\Template\ICustomTemplateProvider::class)) { $context->registerTemplateProvider(TemplateProvider::class); } $context->registerPreviewProvider(Preview::class, Preview::getMimeTypeRegex()); $context->registerNotifierService(Notifier::class); Server::get(JobListController::class)->checkAllJobs(); Hooks::connectHooks(); } public function boot(IBootContext $context): void { if (class_exists(TemplateFileCreator::class)) { $context->injectFn(function (ITemplateManager $templateManager, IL10N $trans, $appName): void { if (!empty($this->appConfig->getDocumentServerUrl()) && $this->appConfig->settingsAreSuccessful() && $this->appConfig->isUserAllowedToUse()) { $templateManager->registerTemplateFileCreator(function () use ($appName, $trans): TemplateFileCreator { $wordTemplate = new TemplateFileCreator($appName, $trans->t("New document"), ".docx"); $wordTemplate->addMimetype("application/vnd.openxmlformats-officedocument.wordprocessingml.document"); $wordTemplate->setIconSvgInline(file_get_contents(__DIR__ . '/../../img/new-docx.svg')); $wordTemplate->setRatio(21/29.7); return $wordTemplate; }); $templateManager->registerTemplateFileCreator(function () use ($appName, $trans): TemplateFileCreator { $cellTemplate = new TemplateFileCreator($appName, $trans->t("New spreadsheet"), ".xlsx"); $cellTemplate->addMimetype("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); $cellTemplate->setIconSvgInline(file_get_contents(__DIR__ . '/../../img/new-xlsx.svg')); $cellTemplate->setRatio(21/29.7); return $cellTemplate; }); $templateManager->registerTemplateFileCreator(function () use ($appName, $trans): TemplateFileCreator { $slideTemplate = new TemplateFileCreator($appName, $trans->t("New presentation"), ".pptx"); $slideTemplate->addMimetype("application/vnd.openxmlformats-officedocument.presentationml.presentation"); $slideTemplate->setIconSvgInline(file_get_contents(__DIR__ . '/../../img/new-pptx.svg')); $slideTemplate->setRatio(16/9); return $slideTemplate; }); } }); } } }