config = json_decode($this->getConfigurationJson()); $this->configFormats = json_decode($this->getConfigurationFromatsJson()); } private function getConfigurationJson(): bool|string { return file_exists("./config.json") ? file_get_contents("./config.json") : false; } private function getConfigurationFromatsJson(): bool|string { return file_exists("./assets/document-formats/onlyoffice-docs-formats.json") ? file_get_contents("./assets/document-formats/onlyoffice-docs-formats.json") : false; } /** * @param string|null $configName * @return mixed */ public function getConfig(string $configName = null): mixed { if ($configName) { return $this->config->$configName ?? ""; } return $this->config; } public function getSuppotredExtensions(): mixed { return array_reduce( $this->configFormats, function ($extensions, $format) { $extensions[] = $format->name; return $extensions; } ); } public function getViewExtensions(): mixed { return array_reduce( $this->configFormats, function ($extensions, $format) { if (in_array("view", $format->actions)) { $extensions[] = $format->name; } return $extensions; } ); } public function getEditExtensions(): mixed { return array_reduce( $this->configFormats, function ($extensions, $format) { if (in_array("edit", $format->actions)) { $extensions[] = $format->name; } return $extensions; } ); } public function getFillExtensions(): mixed { return array_reduce( $this->configFormats, function ($extensions, $format) { if (in_array("fill", $format->actions)) { $extensions[] = $format->name; } return $extensions; } ); } public function getConvertExtensions(): mixed { return array_reduce( $this->configFormats, function ($extensions, $format) { if ($format->type === "word" && in_array("docx", $format->convert) || $format->type === "cell" && in_array("xlsx", $format->convert) || $format->type === "slide" && in_array("pptx", $format->convert)) { $extensions[] = $format->name; } return $extensions; } ); } }