92 lines
3.9 KiB
PHP
92 lines
3.9 KiB
PHP
<?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;
|
|
}
|