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

41 lines
1.6 KiB
PHP

<?php
/**
* Create a draft template record and redirect to Edit (OnlyOffice editor).
*/
class OnlyOfficeTemplates_CreateDraft_Action extends Vtiger_Action_Controller
{
public function checkPermission(Vtiger_Request $request)
{
$moduleName = $request->getModule();
$tabId = getTabId($moduleName);
$privileges = Users_Privileges_Model::getCurrentUserPrivilegesModel();
if (!$privileges->hasModulePermission($tabId)) {
throw new AppException('LBL_PERMISSION_DENIED');
}
}
public function process(Vtiger_Request $request)
{
$adb = PearDatabase::getInstance();
$currentUser = Users_Record_Model::getCurrentUserModel();
$ownerId = $currentUser->getId();
$name = $request->get('name') ?: vtranslate('LBL_OOT_NEW_TEMPLATE', $request->getModule());
$module = $request->get('module_name');
if (!$module) {
$r = $adb->pquery("SELECT name FROM vtiger_tab WHERE isentitytype = 1 AND presence = 0 ORDER BY name LIMIT 1", []);
$module = $adb->query_result($r, 0, 'name');
}
$adb->pquery(
"INSERT INTO vtiger_oot_templates (name, module, s3_key, file_name, owner, created_at) VALUES (?, ?, '', '', ?, NOW())",
[$name, $module, $ownerId]
);
$templateId = (int)$adb->getLastInsertID();
if ($templateId <= 0) {
$r = $adb->pquery("SELECT MAX(id) AS m FROM vtiger_oot_templates", []);
$templateId = (int)$adb->query_result($r, 0, 'm');
}
header('Location: index.php?module=OnlyOfficeTemplates&view=Edit&templateid=' . $templateId . '&app=TOOLS');
}
}