59 lines
2.2 KiB
PHP
59 lines
2.2 KiB
PHP
<?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;
|
|
}
|