SugarCRM: PHP не запускается из ajax для пользовательской кнопки

У меня возникли проблемы с вызовом ajax на пользовательской кнопке. Пользовательская кнопка находится в представлении списка дел, и для каждого случая в списке есть одна. При нажатии эта кнопка должна выполнить ajax-вызов для пользовательской конечной точки, обновить значение assign_user_id для текущего пользователя, вошедшего в систему, и перенаправить на случай, с которым связана кнопка.

В настоящее время я работаю с конечной точкой и могу записать идентификатор дела, передаваемого через вызов ajax, но не могу получить вызов, чтобы обновить пользователя, назначенного делу.

Вот вызов ajax:

function take_ticket(url, id) {
$.ajax({
url: '/custom/modules/Cases/assign_ticket.php',
contentType: 'JSON',
data: {
'id': id
},
success: function(response){
window.location = url;
//alert(response);
},
error: function(response) {
alert('Error');
}
});
return false;
}

А вот пользовательская конечная точка, которую я создал (обратите внимание, я жестко программирую идентификатор пользователя для тестирования):

<?php
if ($_GET['id']) {
$test = $_GET['id'];
updateUser($test);
}

function updateUser($test) {
$case = new aCase();
$case->retrieve($test);
$case->assigned_user_id = 'a5c636c4-9712-d84a-7e81-585becf9dc52'
$case->save();
}
?>

Если я удалю всю логику создания / обновления кейса и просто выведу $ test, я получу ответ, который я ожидаю. Тем не менее, с логикой обновления на месте, мой ответ пуст, даже если я просто отображаю $ test, и дело не обновляется.

Редактировать: из-за получения недопустимой ошибки точки входа я попытался добавить точку входа для модулей / Cases / case.php в include / MVC / Controller / entry_point_registry.php:

$entry_point_registry = array(
'cases' => array('file' => 'modules/Cases/Case.php', 'auth' => false),
'takeTicket' => array('file' => 'custom/modules/Cases/assign_ticket.php', 'auth' => false),
'emailImage' => array('file' => 'modules/EmailMan/EmailImage.php', 'auth' => false),
.....

Это не сработало, поэтому я добавил запись в custom / Extension / application / Ext / EntryPointRegistry / customEntryPoint.php:

$entry_point_registry['takeTicket'] = array(
'file' => 'custom/modules/Cases/assign_ticket.php',
'auth' => false
);

$entry_point_registry['cases'] = array(
'file' => 'modules/Cases/Case.php',
'auth' => false
);

0

Решение

В файлы было внесено несколько изменений на основе предоставленной информации:

пользовательские / модули / Шкафы / assign_ticket.php

$case->assigned_user_id = 'a5c636c4-9712-d84a-7e81-585becf9dc52'; //Added semicolon (syntax error)

пользовательские / Extension / приложение / Ext / EntryPointRegistry / customEntryPoint.php

    'auth' => true //You need to be authenticated/authorised to perform saves on records

Ajax:

        url: 'index.php?entryPoint=takeTicket', //If you check the Sugar docs carefully, you'll see that the URL you need to call is index.php?entryPoint={yourEntryPointRegistryKey}
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector