config = $config; $this->metadata = $metadata; $this->fileManager = $fileManager; } public function getTemplate($type, $name, $entityType = null, $defaultModuleName = null) { $fileName = $this->getTemplateFileName($type, $name, $entityType, $defaultModuleName); return file_get_contents($fileName); } public function saveTemplate($type, $name, $contents, $entityType = null) { $language = $this->config->get('language'); if ($entityType) { $fileName = "custom/Espo/Custom/Resources/templates/{$type}/{$language}/{$entityType}/{$name}.tpl"; } else { $fileName = "custom/Espo/Custom/Resources/templates/{$type}/{$language}/{$name}.tpl"; } $this->fileManager->putContents($fileName, $contents); } public function resetTemplate($type, $name, $entityType = null) { $language = $this->config->get('language'); if ($entityType) { $fileName = "custom/Espo/Custom/Resources/templates/{$type}/{$language}/{$entityType}/{$name}.tpl"; } else { $fileName = "custom/Espo/Custom/Resources/templates/{$type}/{$language}/{$name}.tpl"; } $this->fileManager->removeFile($fileName); } protected function getTemplateFileName($type, $name, $entityType = null, $defaultModuleName = null) { $language = $this->config->get('language'); if ($entityType) { $moduleName = $this->metadata->getScopeModuleName($entityType); $fileName = "custom/Espo/Custom/Resources/templates/{$type}/{$language}/{$entityType}/{$name}.tpl"; if (file_exists($fileName)) { return $fileName; } if ($moduleName) { $fileName = "application/Espo/Modules/{$moduleName}/Resources/" . "templates/{$type}/{$language}/{$entityType}/{$name}.tpl"; if (file_exists($fileName)) { return $fileName; } } $fileName = "application/Espo/Resources/templates/{$type}/{$language}/{$entityType}/{$name}.tpl"; if (file_exists($fileName)) { return $fileName; } } $fileName = "custom/Espo/Custom/Resources/templates/{$type}/{$language}/{$name}.tpl"; if (file_exists($fileName)) { return $fileName; } if ($defaultModuleName) { $fileName = "application/Espo/Modules/{$defaultModuleName}/" . "Resources/templates/{$type}/{$language}/{$name}.tpl"; } else { $fileName = "application/Espo/Resources/templates/{$type}/{$language}/{$name}.tpl"; } if (file_exists($fileName)) { return $fileName; } $language = 'en_US'; if ($entityType) { $fileName = "custom/Espo/Custom/Resources/templates/{$type}/{$language}/{$entityType}/{$name}.tpl"; if (file_exists($fileName)) { return $fileName; } if ($moduleName) { $fileName = "application/Espo/Modules/{$moduleName}/" . "Resources/templates/{$type}/{$language}/{$entityType}/{$name}.tpl"; if (file_exists($fileName)) { return $fileName; } } $fileName = "application/Espo/Resources/templates/{$type}/{$language}/{$entityType}/{$name}.tpl"; if (file_exists($fileName)) { return $fileName; } } $fileName = "custom/Espo/Custom/Resources/templates/{$type}/{$language}/{$name}.tpl"; if (file_exists($fileName)) { return $fileName; } if ($defaultModuleName) { $fileName = "application/Espo/Modules/{$defaultModuleName}/" . "Resources/templates/{$type}/{$language}/{$name}.tpl"; } else { $fileName = "application/Espo/Resources/templates/{$type}/{$language}/{$name}.tpl"; } return $fileName; } }