Files
crm.clientright.ru/modules/OnlyOfficeTemplates/install.php

59 lines
2.2 KiB
PHP
Raw Normal View History

2026-02-16 09:27:19 +03:00
<?php
/**
* One-time install: register OnlyOfficeTemplates in vtiger_tab and run schema + links.
* Run from browser: index.php?module=OnlyOfficeTemplates&action=Install
* Or from CLI: php modules/OnlyOfficeTemplates/install.php
* Requires admin user when run from browser.
*/
$rootDir = dirname(dirname(__DIR__));
if (php_sapi_name() === 'cli') {
require_once $rootDir . '/config.inc.php';
require_once $rootDir . '/vtlib/Vtiger/Module.php';
require_once $rootDir . '/includes/utils/utils.php';
$current_user = Users::getActiveAdminUser();
if (!$current_user) {
die("Admin user not found.\n");
}
} else {
require_once $rootDir . '/config.inc.php';
require_once $rootDir . '/vtlib/Vtiger/Module.php';
require_once $rootDir . '/includes/utils/utils.php';
if (!isPermitted('Settings', 'Edit', '')) {
die('Access denied.');
}
}
require_once __DIR__ . '/OnlyOfficeTemplates.php';
$adb = PearDatabase::getInstance();
// Check if already registered
$r = $adb->pquery("SELECT tabid FROM vtiger_tab WHERE name = ?", ['OnlyOfficeTemplates']);
if ($adb->num_rows($r) > 0) {
if (php_sapi_name() === 'cli') {
echo "OnlyOfficeTemplates already registered. Running schema and links.\n";
}
} else {
$maxId = $adb->query_result($adb->pquery("SELECT COALESCE(MAX(tabid),0) AS m FROM vtiger_tab", []), 0, 'm');
$tabid = $maxId + 1;
$maxSeq = $adb->query_result($adb->pquery("SELECT COALESCE(MAX(tabsequence),0) AS m FROM vtiger_tab", []), 0, 'm');
$adb->pquery(
"INSERT INTO vtiger_tab (tabid, name, presence, tabsequence, tablabel, modifiedby, modifiedtime, customized, ownedby, isentitytype, version, parent) VALUES (?,?,?,?,?,?,?,?,?,?,?,?)",
[$tabid, 'OnlyOfficeTemplates', 0, $maxSeq + 1, 'OnlyOffice Templates', null, null, 0, 0, 0, '1.0', 'Tools']
);
if (php_sapi_name() === 'cli') {
echo "Registered OnlyOfficeTemplates (tabid=$tabid).\n";
}
}
$mod = new OnlyOfficeTemplates();
$mod->executeSql();
$mod->addLinksToEntityModules();
if (php_sapi_name() === 'cli') {
echo "Done. Schema and widget links applied.\n";
} else {
header('Location: index.php?module=Settings&parent=Settings&view=Index');
exit;
}