Add OnlyOfficeTemplates module
This commit is contained in:
91
modules/OnlyOfficeTemplates/config.php
Normal file
91
modules/OnlyOfficeTemplates/config.php
Normal file
@@ -0,0 +1,91 @@
|
||||
<?php
|
||||
/**
|
||||
* OnlyOfficeTemplates module configuration.
|
||||
* Reads from environment (.env) or optional external config (crm_extensions/file_storage/config.php).
|
||||
* Portable: no hardcoded paths; set S3_*, ONLYOFFICE_* in .env or your config.
|
||||
*/
|
||||
|
||||
$OnlyOfficeTemplatesConfig = null;
|
||||
|
||||
/**
|
||||
* Read env var: getenv() then $_ENV then EnvLoader::get() (EnvLoader does not use putenv).
|
||||
*/
|
||||
function OnlyOfficeTemplates_env($key, $default = '') {
|
||||
$v = getenv($key);
|
||||
if ($v !== false && $v !== '') {
|
||||
return $v;
|
||||
}
|
||||
$v = $_ENV[$key] ?? null;
|
||||
if ($v !== null && $v !== '') {
|
||||
return $v;
|
||||
}
|
||||
if (class_exists('EnvLoader')) {
|
||||
$v = EnvLoader::get($key, $default);
|
||||
return $v !== null ? $v : $default;
|
||||
}
|
||||
return $default;
|
||||
}
|
||||
|
||||
function OnlyOfficeTemplates_getConfig() {
|
||||
global $OnlyOfficeTemplatesConfig;
|
||||
if ($OnlyOfficeTemplatesConfig !== null) {
|
||||
return $OnlyOfficeTemplatesConfig;
|
||||
}
|
||||
|
||||
$baseDir = dirname(__DIR__);
|
||||
$rootDir = dirname(dirname($baseDir));
|
||||
|
||||
// Load .env (EnvLoader uses $_ENV, not getenv)
|
||||
if (file_exists($rootDir . '/crm_extensions/shared/EnvLoader.php')) {
|
||||
require_once $rootDir . '/crm_extensions/shared/EnvLoader.php';
|
||||
$envPath = $rootDir . '/crm_extensions/.env';
|
||||
if (file_exists($envPath)) {
|
||||
EnvLoader::load($envPath);
|
||||
}
|
||||
}
|
||||
|
||||
// 1) Try external config (crm_extensions) if present
|
||||
$extConfigPath = $rootDir . '/crm_extensions/file_storage/config.php';
|
||||
if (file_exists($extConfigPath)) {
|
||||
try {
|
||||
$ext = require $extConfigPath;
|
||||
if (is_array($ext) && isset($ext['s3'])) {
|
||||
$s3 = $ext['s3'];
|
||||
$bucket = $s3['bucket'] ?? $ext['bucket'] ?? $ext['s3_bucket'] ?? OnlyOfficeTemplates_env('S3_BUCKET', '');
|
||||
$OnlyOfficeTemplatesConfig = [
|
||||
's3' => $s3,
|
||||
's3_prefix' => OnlyOfficeTemplates_env('OOT_S3_PREFIX', 'crm2/OnlyOfficeTemplates'),
|
||||
'onlyoffice_convert_url' => OnlyOfficeTemplates_env('OOT_ONLYOFFICE_CONVERT_URL') ?: OnlyOfficeTemplates_env('ONLYOFFICE_CONVERT_URL', ''),
|
||||
'onlyoffice_document_server' => OnlyOfficeTemplates_env('OOT_ONLYOFFICE_DOCUMENT_SERVER') ?: OnlyOfficeTemplates_env('ONLYOFFICE_DOCUMENT_SERVER', ''),
|
||||
'documents_s3_prefix' => OnlyOfficeTemplates_env('OOT_DOCUMENTS_S3_PREFIX', 'crm2/CRM_Active_Files/Documents'),
|
||||
's3_bucket' => $bucket,
|
||||
'document_secret' => OnlyOfficeTemplates_env('OOT_DOCUMENT_SECRET', ''),
|
||||
];
|
||||
return $OnlyOfficeTemplatesConfig;
|
||||
}
|
||||
} catch (Exception $e) {
|
||||
// fallback
|
||||
}
|
||||
}
|
||||
|
||||
// 2) Build from environment
|
||||
$OnlyOfficeTemplatesConfig = [
|
||||
's3' => [
|
||||
'key' => OnlyOfficeTemplates_env('S3_ACCESS_KEY', ''),
|
||||
'secret' => OnlyOfficeTemplates_env('S3_SECRET_KEY', ''),
|
||||
'endpoint' => OnlyOfficeTemplates_env('S3_ENDPOINT', ''),
|
||||
'bucket' => OnlyOfficeTemplates_env('S3_BUCKET', ''),
|
||||
'region' => OnlyOfficeTemplates_env('S3_REGION', 'ru-1'),
|
||||
'use_path_style_endpoint' => true,
|
||||
'version' => 'latest',
|
||||
],
|
||||
's3_prefix' => OnlyOfficeTemplates_env('OOT_S3_PREFIX', 'crm2/OnlyOfficeTemplates'),
|
||||
'onlyoffice_convert_url' => OnlyOfficeTemplates_env('OOT_ONLYOFFICE_CONVERT_URL') ?: OnlyOfficeTemplates_env('ONLYOFFICE_CONVERT_URL', ''),
|
||||
'onlyoffice_document_server' => OnlyOfficeTemplates_env('OOT_ONLYOFFICE_DOCUMENT_SERVER') ?: OnlyOfficeTemplates_env('ONLYOFFICE_DOCUMENT_SERVER', ''),
|
||||
'documents_s3_prefix' => OnlyOfficeTemplates_env('OOT_DOCUMENTS_S3_PREFIX', 'crm2/CRM_Active_Files/Documents'),
|
||||
's3_bucket' => OnlyOfficeTemplates_env('S3_BUCKET', ''),
|
||||
'document_secret' => OnlyOfficeTemplates_env('OOT_DOCUMENT_SECRET', ''),
|
||||
];
|
||||
|
||||
return $OnlyOfficeTemplatesConfig;
|
||||
}
|
||||
Reference in New Issue
Block a user