// shortcut_actions: Actions that are available as direct buttons next to the "Actions" menu
// default: 'UI:Menu:Modify,UI:Menu:New'
'shortcut_actions' => 'UI:Menu:Modify,ev_assign,ev_reassign,ev_wait_for_approval,ev_approve,ev_reject,ev_pending,ev_resolve,ev_close,ev_reopen,ev_validate,ev_plan,ev_replan,ev_notapprove,ev_implement,ev_monitor,ev_finish,ev_dispatch,ev_redispatch',
В моём случае все кнопки действий вынесены наружу, а в меню только “удалить” и “новый”.
По логике понятно, но у меня не получается правильно написать код: <![CDATA[ public function AssignMe($sStimulusCode)
{
$iContactId = UserRights::GetContactId();
$iTeamId = “SELECT lnkPersonToTeam WHERE person_id = $iContactId”;
$this->Set(‘team_id’,$iTeamId->Get(‘team_id’));
$this->Set(‘agent_id’,$iContactId);
}]]>
В итоге я получаю ошибку при нажатии кнопки: Fatal error: Call to a member function Get() on string...
Так просто? Это первое, что я пробовал, но как я только не указывал: UI:Menu:ev_assign и UI:Menu:stimulus&stimulus=ev_assign, и UI:ev_assign, короче как только не делал, но только не так как нужно.
Ну тут всё не так просто) “SELECT lnkPersonToTeam WHERE person_id = $iContactId – это только строка запроса, его нужно выполнить, получить список объектов, взять первый объект из списка и только затем взять у него id. Если ты с php не очень знаком, то объяснить будет непросто.
// Формируем объект поиска из OQL-запроса
$sOql = "SELECT Team AS t JOIN lnkPersonToTeam AS lnk ON lnk.team_id = t.id WHERE lnk.person_id = $iContactId";
$oSearch = DBObjectSearch::FromOQL($sOql);
// Получаем набор объектов Team из объекта поиска
$oTeamSet = new DBObjectSet($oSearch);
if ($oTeamSet->Count() > 0) {
// Если у пользователя есть команды, берем первую попавшуюся
$oTeam = $oTeamSet->Fetch();
// и затем получаем id команды
$iTeamId = $oTeam->GetKey();
// дальше делаем с ним, что хотим
} else {
// У пользователя нет команд
}