Files
crm.clientright.ru/modules/OnlyOfficeTemplates/actions/Install.php
2026-02-16 09:27:19 +03:00

42 lines
1.9 KiB
PHP

<?php
/**
* Install OnlyOfficeTemplates: register in vtiger_tab, create tables, add widget links.
* Open in browser (as admin): index.php?module=OnlyOfficeTemplates&action=Install
*/
class OnlyOfficeTemplates_Install_Action extends Vtiger_Action_Controller
{
public function checkPermission(Vtiger_Request $request)
{
if (!isPermitted('Settings', 'Edit', '')) {
throw new AppException('LBL_PERMISSION_DENIED');
}
}
public function process(Vtiger_Request $request)
{
$adb = PearDatabase::getInstance();
$r = $adb->pquery("SELECT tabid FROM vtiger_tab WHERE name = ?", ['OnlyOfficeTemplates']);
if ($adb->num_rows($r) > 0) {
$msg = 'OnlyOfficeTemplates уже зарегистрирован. Таблицы и виджеты обновлены.';
} 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']
);
$msg = 'Модуль OnlyOfficeTemplates зарегистрирован (tabid=' . $tabid . '). Таблицы и виджеты созданы.';
}
$mod = new OnlyOfficeTemplates();
$mod->executeSql();
$mod->addLinksToEntityModules();
header('Location: index.php?module=Settings&parent=Settings&view=Index&install_oot=1&install_msg=' . urlencode($msg));
exit;
}
}