appName = $AppName; $this->trans = $trans; $this->logger = $logger; $this->format = $format; } /** * Unique id for the creator to filter templates * * @return string */ public function getId(): string { return $this->appName . "_" . $this->format; } /** * Descriptive name for the create action * * @return string */ public function getName(): string { switch ($this->format) { case "xlsx": return $this->trans->t("Spreadsheet"); case "pptx": return $this->trans->t("Presentation"); } return $this->trans->t("Document"); } /** * Default file extension for the new file * * @return string */ public function getExtension(): string { return $this->format; } /** * Mimetype of the resulting created file * * @return array */ public function getMimetype(): string { switch ($this->format) { case "xlsx": return "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; case "pptx": return "application/vnd.openxmlformats-officedocument.presentationml.presentation"; } return "application/vnd.openxmlformats-officedocument.wordprocessingml.document"; } /** * Add content when creating empty files * * @param File $file - empty file * @param string $creatorId - creator id * @param string $templateId - teamplate id */ public function create(File $file, string $creatorId = null, string $templateId = null): void { $this->logger->debug("FileCreator: " . $file->getId() . " " . $file->getName() . " $creatorId $templateId", ["app" => $this->appName]); $fileName = $file->getName(); $template = TemplateManager::GetTemplate($fileName); if (!$template) { $this->logger->error("FileCreator: Template for file creation not found: $templateId", ["app" => $this->appName]); return; } try { $file->putContent($template); } catch (NotPermittedException $e) { $this->logger->logException($e, ["message" => "FileCreator: Can't create file: $fileName", "app" => $this->appName]); } } }